49typedef struct das_prop {
110 ubyte* pBuf,
size_t uBufSz,
const char* sType, ubyte uType,
const char* sName,
111 const char* sValue,
char cSep,
das_units units,
int nStandard
120#define DasProp_units(P) ((P)->units)
125#define DasProp_name(P) ((P)->buffer)
194char dasprop_unescapeSep(
const char* sSep);
284#define DASPROP_MULTI_MASK 0x00000003
286#define DASPROP_VALID_MASK 0x00000003
288#define DASPROP_INVALID 0x00000000
289#define DASPROP_SINGLE 0x00000001
290#define DASPROP_RANGE 0x00000002
291#define DASPROP_SET 0x00000003
296#define DASPROP_TYPE_MASK 0x000000F0
298#define DASPROP_STRING 0x00000010
299#define DASPROP_BOOL 0x00000020
300#define DASPROP_INT 0x00000030
301#define DASPROP_REAL 0x00000040
302#define DASPROP_DATETIME 0x00000050
304#define DASPROP_DAS1 1
305#define DASPROP_DAS2 2
306#define DASPROP_DAS3 3
311#define DasProp_isType(P,T) ((P->flags & DASPROP_TYPE_MASK) == T)
316#define DasProp_isRange(P) ((P->flags & DASPROP_RANGE)==DASPROP_RANGE)
323#define DasProp_isSet(P) ((P->flags & DASPROP_SET)==DASPROP_SET)
Minimal definitions for das2 utilities that can safely be run without calling das_init().
int DasErrCode
return code type 0 indicates success, negative integer indicates failure
Definition defs.h:184
const char * das_units
Handle SI and other units, with accommodations for Epoch systems, from units.h.
Definition units.h:144
size_t dasprop_memsz(const char *sName, const char *sValue)
Get required storage space for a property given a name and value.
Individual properties of a descriptor.
Definition property.h:49
int DasProp_convertReal(const DasProp *pProp, double *pBuf, size_t uBufLen)
Convert real-value properties to double.
int DasProp_convertInt(const DasProp *pProp, int64_t *pBuf, size_t uBufLen)
Convert integer property values to 64-bit ints.
DasErrCode DasProp_init(ubyte *pBuf, size_t uBufSz, const char *sType, ubyte uType, const char *sName, const char *sValue, char cSep, das_units units, int nStandard)
Flexible das1, das2 and das3 compatible property memory initializer.
bool DasProp_isValid(const DasProp *pProp)
Determine if this property has a valid type definition.
const char * DasProp_typeStr3(const DasProp *pProp)
Get a das3 type string for this property.
const char * DasProp_xmlValue(const DasProp *pProp, char *sBuf, size_t uLen)
Get the string value for a property with illegal XML characters escaped.
size_t DasProp_size(const DasProp *pProp)
Return the memory footprint of a property.
int DasProp_convertTime(const DasProp *pProp, uint64_t *pBuf, size_t uBufLen)
Convert datatime properties to a double based value of units.
int DasProp_items(const DasProp *pProp)
Determine the number of items in a multi valued property.
void DasProp_invalidate(DasProp *pProp)
Mark this property as invalid, this erases the type information and is thus a non-reversible operatio...
size_t DasProp_escapeSize(const DasProp *pProp)
Get the size of needed escape buffer if property contains illegal XML chars.
int DasProp_convertTt2k(const DasProp *pProp, int64_t *pBuf, size_t uBufLen)
Convert datatime properties TT2K long integers.
int DasProp_convertBool(const DasProp *pProp, uint8_t *pBuf, size_t uBufLen)
Convert boolean property values to bytes.
const char * DasProp_typeStr2(const DasProp *pProp)
Get a das2 type string for this property
char DasProp_sep(const DasProp *pProp)
Get the value separator character for array-style properties.
bool DasProp_equal(const DasProp *pOne, const DasProp *pTwo)
Determine if two properties contain equal content.
int DasProp_extractItems(const DasProp *pProp, char **psBuf, size_t uNumStrs, size_t uLenEa)
Just extract the property strings, don't convert anything.
const char * DasProp_value(const DasProp *pProp)
Get the string value for a property.
ubyte DasProp_type(const DasProp *pProp)
Get a property type code.
Defines units used for items in the stream, most notably time units that reference an epoch and a ste...