freeswitch/libs/libtpl-1.5/tests/other/other1.cpp

41 lines
730 B
C++
Raw Normal View History

#include <stdio.h>
#include <string.h>
#include "tpl.h"
main() {
void *buffer;
size_t bsize;
struct ci {
int i;
char c[30];
void pack( void **buffer, size_t *size )
{
tpl_node *tn = tpl_map("S(ic#)", this, 30); /* pass structure address */
tpl_pack(tn, 0);
tpl_dump(tn, TPL_MEM, buffer, size);
tpl_free(tn);
}
void unpack( void *buffer, size_t size )
{
tpl_node *tn = tpl_map("S(ic#)", this, 30);
tpl_load(tn, TPL_MEM, buffer, size);
tpl_unpack( tn, 0 );
tpl_free(tn);
}
};
struct ci s = {9999, "this is a test string."};
s.pack(&buffer, &bsize);
printf("buffer: %s\n", (char *)buffer);
struct ci b = { -1, "" };
b.unpack(buffer, bsize);
printf("i: %d\n", b.i);
printf("c: %s\n", b.c);
}