add a function to get the address and size of serialised data
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
455783eed9
commit
8e1bdb8855
2 changed files with 17 additions and 0 deletions
|
@ -189,4 +189,6 @@ void * ddsi_serstate_append (serstate_t st, size_t n);
|
||||||
void * ddsi_serstate_append_align (serstate_t st, size_t a);
|
void * ddsi_serstate_append_align (serstate_t st, size_t a);
|
||||||
void * ddsi_serstate_append_aligned (serstate_t st, size_t n, size_t a);
|
void * ddsi_serstate_append_aligned (serstate_t st, size_t n, size_t a);
|
||||||
|
|
||||||
|
OSAPI_EXPORT void ddsi_serdata_getblob (void **raw, size_t *sz, serdata_t serdata);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -140,6 +140,21 @@ uint32_t ddsi_serdata_size (const struct serdata *serdata)
|
||||||
return (uint32_t) (sizeof (struct CDRHeader) + st->pos);
|
return (uint32_t) (sizeof (struct CDRHeader) + st->pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ddsi_serdata_getblob (void **raw, size_t *sz, serdata_t serdata)
|
||||||
|
{
|
||||||
|
const struct serstate *st = serdata->v.st;
|
||||||
|
if (serdata->v.st->kind == STK_EMPTY)
|
||||||
|
{
|
||||||
|
*sz = 0;
|
||||||
|
*raw = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*sz = sizeof (struct CDRHeader) + st->pos;
|
||||||
|
*raw = &serdata->hdr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int ddsi_serdata_is_key (const struct serdata * serdata)
|
int ddsi_serdata_is_key (const struct serdata * serdata)
|
||||||
{
|
{
|
||||||
return serdata->v.st->kind == STK_KEY;
|
return serdata->v.st->kind == STK_KEY;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue