1 #ifndef CISFORMATSERIALIZE_H_ 2 #define CISFORMATSERIALIZE_H_ 5 #include <SerializeBase.h> 6 #include <../dataio/AsciiTable.h> 23 int serialize_format(
const seri_t s,
char *buf,
const size_t buf_siz,
24 int *args_used, va_list ap) {
26 char *fmt = (
char*)s.info;
27 int ret = vsnprintf(buf, buf_siz, fmt, ap);
28 cislog_debug(
"serialize_format: vsnprintf returns %d", ret);
30 cislog_error(
"serialize_format: vsnprintf encoding error");
33 args_used[0] = count_formats(fmt);
47 int deserialize_format(
const seri_t s,
const char *buf,
const size_t buf_siz,
54 char *fmt0 = (
char*)s.info;
55 size_t fmt_siz = 2*strlen(fmt0) + 1;
56 char *fmt = (
char*)malloc(
sizeof(
char) * fmt_siz);
58 cislog_error(
"deserialize_format: Failed to allocate buffer for simplified format.");
62 int sret = simplify_formats(fmt, fmt_siz);
64 cislog_error(
"deserialize_format: simplify_formats returned %d", sret);
68 cislog_debug(
"deserialize_format: simplify_formats returns %d", sret);
69 int nfmt = count_formats(fmt);
70 cislog_debug(
"deserialize_format: Simplified format contains %d fields", nfmt);
72 sret = vsscanf(buf, fmt, ap);
74 cislog_error(
"deserialize_format: vsscanf filled %d variables, but there are %d formats",
79 cislog_debug(
"deserialize_format: vsscanf returns %d", sret);
Serializer structure.
Definition: SerializeBase.h:19