ossp-pkg/xds/internal.h 1.7 -> 1.8
--- internal.h 2001/07/31 15:27:45 1.7
+++ internal.h 2001/08/01 15:25:47 1.8
@@ -30,6 +30,7 @@
#ifndef __INTERNAL_H__
#define __INTERNAL_H__
+#include <assert.h>
#include "xds.h"
#define XDS_TRUE (1==1)
@@ -66,4 +67,38 @@
extern const char xds_xml_begin_text[];
extern const char xds_xml_end_text[];
+#define xds_check_parameter(condition) \
+ do \
+ { \
+ assert(condition); \
+ if (!(condition)) \
+ return XDS_ERR_INVALID_ARG; \
+ } while(XDS_FALSE)
+
+#define xds_init_encoding_engine(size) \
+ do \
+ { \
+ xds_check_parameter(xds != NULL); \
+ xds_check_parameter(buffer != NULL); \
+ xds_check_parameter(buffer_size != 0); \
+ xds_check_parameter(used_buffer_size != NULL && *used_buffer_size == 0); \
+ xds_check_parameter(args != NULL); \
+ *used_buffer_size = size; \
+ if (buffer_size < size) \
+ return XDS_ERR_OVERFLOW; \
+ } while(XDS_FALSE)
+
+#define xds_init_decoding_engine(size) \
+ do \
+ { \
+ xds_check_parameter(xds != NULL); \
+ xds_check_parameter(buffer != NULL); \
+ xds_check_parameter(buffer_size != 0); \
+ xds_check_parameter(used_buffer_size != NULL && *used_buffer_size == 0); \
+ xds_check_parameter(args != NULL); \
+ *used_buffer_size = size; \
+ if (buffer_size < size) \
+ return XDS_ERR_UNDERFLOW; \
+ } while(XDS_FALSE)
+
#endif /* !defined(__INTERNAL_H__) */
|
|