machinarium: allow dynamic msg resize/write

This commit is contained in:
Dmitry Simonenko 2018-08-22 15:19:06 +03:00
parent f77d7ccf02
commit 1ab4cd9482
2 changed files with 22 additions and 0 deletions

View File

@ -130,6 +130,12 @@ machine_msg_get_data(machine_msg_t*);
MACHINE_API int
machine_msg_get_type(machine_msg_t*);
MACHINE_API int
machine_msg_ensure(machine_msg_t*, int size);
MACHINE_API void
machine_msg_write(machine_msg_t*, char *buf, int size);
/* channel */
MACHINE_API machine_channel_t*

View File

@ -47,3 +47,19 @@ machine_msg_get_type(machine_msg_t *obj)
mm_msg_t *msg = mm_cast(mm_msg_t*, obj);
return msg->type;
}
MACHINE_API int
machine_msg_ensure(machine_msg_t *obj, int size)
{
mm_msg_t *msg = mm_cast(mm_msg_t*, obj);
return mm_buf_ensure(&msg->data, size);
}
MACHINE_API void
machine_msg_write(machine_msg_t *obj, char *buf, int size)
{
mm_msg_t *msg = mm_cast(mm_msg_t*, obj);
int rc = mm_buf_add(&msg->data, buf, size);
(void)rc;
assert(rc == 0);
}