33#define DATUM_BUF_SZ 32
87typedef struct datum_t {
88 ubyte bytes[DATUM_BUF_SZ];
113 das_datum* pThis,
const ubyte* pSrc,
das_val_type vt, uint32_t vsize,
120DAS_API
das_val_type das_datum_elemType(
const das_datum* pThis);
136DAS_API
bool das_datum_box(
137 das_datum* pThis,
const struct das_form* pForm,
const ubyte* pRun,
143DAS_API
const struct das_form* das_datum_form(
const das_datum* pThis);
148DAS_API
const ubyte* das_datum_run(
const das_datum* pThis);
170DAS_API
int das_datum_shape(
const das_datum* pThis, ptrdiff_t* pShape);
175DAS_API
size_t das_datum_nElems(
const das_datum* pThis);
185DAS_API
size_t das_datum_runBytes(
const das_datum* pThis);
199#define das_datum_valid(p) ((p)->vsize > 0)
216#define das_datum_islocal(p) \
217 ( ((p)->vt >= VT_MIN_LOCAL) && ((p)->vt <= VT_MAX_LOCAL) )
231DAS_API
bool das_datum_fromStr(das_datum* pThis,
const char* sStr);
243DAS_API
bool das_datum_fromDbl(das_datum* pThis,
double value,
das_units units);
265DAS_API
bool das_datum_wrapStr(das_datum* pTHis,
const char* sStr,
das_units units);
274DAS_API
bool das_datum_byteSeq(
275 das_datum* pThis, das_cbyte_seq seq,
das_units units
302DAS_API
char* das_datum_toStr(
303 const das_datum* pThis,
char* sStr,
size_t uLen,
int nFracDigits
311DAS_API
char* das_datum_toStrValOnly(
312 const das_datum* pThis,
char* sStr,
size_t uLen,
int nFracDigits
318 const das_datum* pThis,
char* sStr,
size_t uLen,
int nFracDigits,
334DAS_API
bool das_datum_toDbl(
const das_datum* pThis,
double* pOut);
353DAS_API
int das_datum_toDoubles(
354 const das_datum* pThis,
double* pOut,
int nMax
372DAS_API
bool das_datum_toEpoch(
373 const das_datum* pThis,
das_units epoch,
double* pResult
387DAS_API
bool das_datum_toTime(
const das_datum* pThis,
das_time* pDt);
394#define das_datum_asStr(dm) *((char**)&dm)
DAS_API void das_datum_init(das_datum *pThis, const ubyte *pSrc, das_val_type vt, uint32_t vsize, das_units units)
General datum initialization.
char * das_datum_toStrValOnlySep(const das_datum *pThis, char *sStr, size_t uLen, int nFracDigits, const char *sSep)
Similar to das_datum_toStr, but can specify a separator for vectors.
const char * das_units
Handle SI and other units, with accommodations for Epoch systems, from units.h.
Definition units.h:144
das_val_type
Enumeration of types stored in Das Array (DasAry) objects from value.h.
Definition value.h:81
Basic date-time structure used throughout the Das1 & Das2 utilities.
Definition time.h:43
Defines units used for items in the stream, most notably time units that reference an epoch and a ste...
A generic value type for use in arrays, datums and variables.