2 #include <SerializeBase.h> 3 #include <../dataio/AsciiTable.h> 5 #ifndef CISFORMATSERIALIZE_H_ 6 #define CISFORMATSERIALIZE_H_ 20 int serialize_format(
const seri_t s,
char *buf,
const size_t buf_siz,
21 int *args_used, va_list ap) {
23 char *fmt = (
char*)s.info;
24 int ret = vsnprintf(buf, buf_siz, fmt, ap);
25 cislog_debug(
"serialize_format: vsnprintf returns %d", ret);
27 cislog_error(
"serialize_format: vsnprintf encoding error");
30 args_used[0] = count_formats(fmt);
44 int deserialize_format(
const seri_t s,
const char *buf,
const size_t buf_siz,
51 char *fmt0 = (
char*)s.info;
52 size_t fmt_siz = 2*strlen(fmt0) + 1;
53 char *fmt = (
char*)malloc(
sizeof(
char) * fmt_siz);
55 cislog_error(
"deserialize_format: Failed to allocate buffer for simplified format.");
59 int sret = simplify_formats(fmt, fmt_siz);
61 cislog_error(
"deserialize_format: simplify_formats returned %d", sret);
65 cislog_debug(
"deserialize_format: simplify_formats returns %d", sret);
66 int nfmt = count_formats(fmt);
67 cislog_debug(
"deserialize_format: Simplified format contains %d fields", nfmt);
69 sret = vsscanf(buf, fmt, ap);
71 cislog_error(
"deserialize_format: vsscanf filled %d variables, but there are %d formats",
76 cislog_debug(
"deserialize_format: vsscanf returns %d", sret);
Serializer structure.
Definition: SerializeBase.h:15