diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/packing/pack_api.c')
-rw-r--r-- | src/third_party/wiredtiger/src/packing/pack_api.c | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/src/packing/pack_api.c b/src/third_party/wiredtiger/src/packing/pack_api.c new file mode 100644 index 00000000000..c0c1e53c8ca --- /dev/null +++ b/src/third_party/wiredtiger/src/packing/pack_api.c @@ -0,0 +1,137 @@ +/*- + * Copyright (c) 2008-2014 WiredTiger, Inc. + * All rights reserved. + * + * See the file LICENSE for redistribution information. + */ + +#include "wt_internal.h" + +/* + * wiredtiger_struct_pack -- + * Pack a byte string (extension API). + */ +int +wiredtiger_struct_pack(WT_SESSION *wt_session, + void *buffer, size_t size, const char *fmt, ...) +{ + WT_DECL_RET; + WT_SESSION_IMPL *session; + va_list ap; + + session = (WT_SESSION_IMPL *)wt_session; + + va_start(ap, fmt); + ret = __wt_struct_packv(session, buffer, size, fmt, ap); + va_end(ap); + + return (ret); +} + +/* + * wiredtiger_struct_size -- + * Calculate the size of a packed byte string (extension API). + */ +int +wiredtiger_struct_size(WT_SESSION *wt_session, + size_t *sizep, const char *fmt, ...) +{ + WT_DECL_RET; + WT_SESSION_IMPL *session; + va_list ap; + + session = (WT_SESSION_IMPL *)wt_session; + + va_start(ap, fmt); + ret = __wt_struct_sizev(session, sizep, fmt, ap); + va_end(ap); + + return (ret); +} + +/* + * wiredtiger_struct_unpack -- + * Unpack a byte string (extension API). + */ +int +wiredtiger_struct_unpack(WT_SESSION *wt_session, + const void *buffer, size_t size, const char *fmt, ...) +{ + WT_DECL_RET; + WT_SESSION_IMPL *session; + va_list ap; + + session = (WT_SESSION_IMPL *)wt_session; + + va_start(ap, fmt); + ret = __wt_struct_unpackv(session, buffer, size, fmt, ap); + va_end(ap); + + return (ret); +} + +/* + * __wt_ext_struct_pack -- + * Pack a byte string (extension API). + */ +int +__wt_ext_struct_pack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, + void *buffer, size_t size, const char *fmt, ...) +{ + WT_DECL_RET; + WT_SESSION_IMPL *session; + va_list ap; + + session = (wt_session != NULL) ? (WT_SESSION_IMPL *)wt_session : + ((WT_CONNECTION_IMPL *)wt_api->conn)->default_session; + + va_start(ap, fmt); + ret = __wt_struct_packv(session, buffer, size, fmt, ap); + va_end(ap); + + return (ret); +} + +/* + * __wt_ext_struct_size -- + * Calculate the size of a packed byte string (extension API). + */ +int +__wt_ext_struct_size(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, + size_t *sizep, const char *fmt, ...) +{ + WT_DECL_RET; + WT_SESSION_IMPL *session; + va_list ap; + + session = (wt_session != NULL) ? (WT_SESSION_IMPL *)wt_session : + ((WT_CONNECTION_IMPL *)wt_api->conn)->default_session; + + va_start(ap, fmt); + ret = __wt_struct_sizev(session, sizep, fmt, ap); + va_end(ap); + + return (ret); +} + +/* + * __wt_ext_struct_unpack -- + * Unpack a byte string (extension API). + */ +int +__wt_ext_struct_unpack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, + const void *buffer, size_t size, const char *fmt, ...) +{ + WT_DECL_RET; + WT_SESSION_IMPL *session; + va_list ap; + + session = (wt_session != NULL) ? (WT_SESSION_IMPL *)wt_session : + ((WT_CONNECTION_IMPL *)wt_api->conn)->default_session; + + va_start(ap, fmt); + ret = __wt_struct_unpackv(session, buffer, size, fmt, ap); + va_end(ap); + + return (ret); +} |