5 #ifndef CMR_C_COMPATIBILITY_INCLUDED
6 #define CMR_C_COMPATIBILITY_INCLUDED
16 #include "StringBuffer.h"
23 #define CMRC_API __stdcall
34 const long CMR_C_OK = commore::CMR_OK;
35 const long CMR_C_NOOP = commore::CMR_NOOP;
37 const long CMR_C_GENERIC_ERROR = commore::CMR_GENERIC_ERROR;
38 const long CMR_C_NOT_FOUND = commore::CMR_NOT_FOUND;
39 const long CMR_C_NOT_IMPLEMENTED = commore::CMR_NOT_IMPLEMENTED;
41 const long CMR_C_ALREADY_EXIST = commore::CMR_ALREADY_EXIST;
42 const long CMR_C_END_OF_DATA = commore::CMR_END_OF_DATA;
43 const long CMR_C_INVALID_ANSWER = commore::CMR_INVALID_ANSWER;
54 typedef void* CMR_C_LIST_BOOL;
55 typedef void* CMR_C_ITERATOR_BOOL;
57 typedef void* CMR_C_LIST_INT;
58 typedef void* CMR_C_ITERATOR_INT;
60 typedef void* CMR_C_LIST_LONG;
61 typedef void* CMR_C_ITERATOR_LONG;
63 typedef void* CMR_C_LIST_FLOAT;
64 typedef void* CMR_C_ITERATOR_FLOAT;
66 typedef void* CMR_C_LIST_DOUBLE;
67 typedef void* CMR_C_ITERATOR_DOUBLE;
69 typedef void* CMR_C_LIST_ASTRING;
70 typedef void* CMR_C_ITERATOR_ASTRING;
72 typedef void* CMR_C_LIST_STRING;
73 typedef void* CMR_C_ITERATOR_STRING;
75 typedef void* CMR_C_LIST_BLOB;
76 typedef void* CMR_C_ITERATOR_BLOB;
78 typedef void* CMR_C_LIST_TIMEDATE;
79 typedef void* CMR_C_ITERATOR_TIMEDATE;
81 typedef void* CMR_C_LIST_TIMEPERIOD;
82 typedef void* CMR_C_ITERATOR_TIMEPERIOD;
85 typedef void* CMR_C_ARRAY_INT;
86 typedef void* CMR_C_ARRAY_LONG;
87 typedef void* CMR_C_ARRAY_FLOAT;
88 typedef void* CMR_C_ARRAY_DOUBLE;
91 typedef void* CMR_C_BLOB;
92 typedef void* CMR_C_TIMEDATE;
93 typedef void* CMR_C_TIMEPERIOD;
94 typedef void* CMR_C_TUPLE;
101 #define LIST_FUNC(listName, iteratorName, T) \
102 CMREXD CMR_C_##listName CMRC_API CMRC_##listName##_create(); \
103 CMREXD void CMRC_API CMRC_##listName##_delete(CMR_C_##listName l); \
104 CMREXD void CMRC_API CMRC_##listName##_clear(CMR_C_##listName l); \
105 CMREXD void CMRC_API CMRC_##listName##_add(CMR_C_##listName l, T v); \
106 CMREXD CMR_C_##iteratorName CMRC_API CMRC_##listName##_begin(CMR_C_##listName l); \
107 CMREXD void CMRC_API CMRC_##iteratorName##_delete(CMR_C_##iteratorName it); \
108 CMREXD T CMRC_API CMRC_##iteratorName##_get(CMR_C_##iteratorName it); \
109 CMREXD bool CMRC_API CMRC_##iteratorName##_next(CMR_C_##iteratorName it); \
110 CMREXD bool CMRC_API CMRC_##iteratorName##_more(CMR_C_##iteratorName it); \
112 #define FCT_ARRAY(ArrayName, T) \
113 CMREXD CMR_C_##ArrayName CMRC_API CMRC_##ArrayName##_create(); \
114 CMREXD void CMRC_API CMRC_##ArrayName##_delete(CMR_C_##ArrayName l); \
115 CMREXD T CMRC_API CMRC_##ArrayName##_get(CMR_C_##ArrayName l, int index, T v); \
116 CMREXD void CMRC_API CMRC_##ArrayName##_set(CMR_C_##ArrayName l, int index, T v);\
117 CMREXD size_t CMRC_API CMRC_##ArrayName##_size(CMR_C_##ArrayName l, T v);\
118 CMREXD void CMRC_API CMRC_##ArrayName##_add(CMR_C_##ArrayName l, T v);
125 LIST_FUNC(LIST_BOOL, ITERATOR_BOOL,
bool);
126 LIST_FUNC(LIST_INT, ITERATOR_INT,
int);
127 LIST_FUNC(LIST_LONG, ITERATOR_LONG,
long);
128 LIST_FUNC(LIST_FLOAT, ITERATOR_FLOAT,
float);
129 LIST_FUNC(LIST_DOUBLE, ITERATOR_DOUBLE,
double);
130 LIST_FUNC(LIST_ASTRING, ITERATOR_ASTRING,
const char*);
131 LIST_FUNC(LIST_STRING, ITERATOR_STRING,
const wchar_t*);
132 LIST_FUNC(LIST_BLOB, ITERATOR_BLOB, CMR_C_BLOB);
133 LIST_FUNC(LIST_TIMEDATE, ITERATOR_TIMEDATE, CMR_C_TIMEDATE);
134 LIST_FUNC(LIST_TIMEPERIOD, ITERATOR_TIMEPERIOD, CMR_C_TIMEPERIOD);
137 FCT_ARRAY(ARRAY_INT, commore::Int)
138 FCT_ARRAY(ARRAY_LONG, commore::Long)
139 FCT_ARRAY(ARRAY_FLOAT, commore::Float)
140 FCT_ARRAY(ARRAY_DOUBLE, commore::Double)
143 CMREXD CMR_C_BLOB CMRC_API CMRC_BLOB_create(
char* content,
size_t size,
size_t allocated_size);
144 CMREXD
void CMRC_API CMRC_BLOB_delete(CMR_C_BLOB blob);
145 CMREXD
char* CMRC_API CMRC_BLOB_set(CMR_C_BLOB blob, const
char* content,
size_t size,
size_t allocated_size);
146 CMREXD const
char* CMRC_API CMRC_BLOB_get_content(CMR_C_BLOB blob);
147 CMREXD
size_t CMRC_API CMRC_BLOB_get_size(CMR_C_BLOB blob);
148 CMREXD
void CMRC_API CMRC_BLOB_clear(CMR_C_BLOB blob);
151 CMREXD CMR_C_TIMEDATE CMRC_API CMRC_TIMEDATE_create(
int year,
int month,
int day,
int hour,
int min,
int second,
int mums);
152 CMREXD
void CMRC_API CMRC_TIMEDATE_delete(CMR_C_TIMEDATE timeDate);
153 CMREXD CMR_C_TIMEDATE CMRC_API CMRC_TIMEDATE_now();
154 CMREXD CMR_C_TIMEPERIOD CMRC_API CMRC_TIMEDATE_get_time(CMR_C_TIMEDATE timeDate);
155 CMREXD
int CMRC_API CMRC_TIMEDATE_get_year(CMR_C_TIMEDATE timeDate);
156 CMREXD
int CMRC_API CMRC_TIMEDATE_get_month(CMR_C_TIMEDATE timeDate);
157 CMREXD
int CMRC_API CMRC_TIMEDATE_get_day(CMR_C_TIMEDATE timeDate);
158 CMREXD
int CMRC_API CMRC_TIMEDATE_get_hour(CMR_C_TIMEDATE timeDate);
159 CMREXD
int CMRC_API CMRC_TIMEDATE_get_minute(CMR_C_TIMEDATE timeDate);
160 CMREXD
int CMRC_API CMRC_TIMEDATE_get_second(CMR_C_TIMEDATE timeDate);
161 CMREXD
int CMRC_API CMRC_TIMEDATE_get_millisecond(CMR_C_TIMEDATE timeDate);
162 CMREXD
int CMRC_API CMRC_TIMEDATE_get_microsecond(CMR_C_TIMEDATE timeDate);
165 CMREXD CMR_C_TIMEPERIOD CMRC_API CMRC_TIMEPERIOD_create(
long seconds);
166 CMREXD
void CMRC_API CMRC_TIMEPERIOD_delete(CMR_C_TIMEPERIOD timePeriod);
167 CMREXD
long CMRC_API CMRC_TIMEPERIOD_to_days(CMR_C_TIMEPERIOD timePeriod);
168 CMREXD
long CMRC_API CMRC_TIMEPERIOD_to_hours(CMR_C_TIMEPERIOD timePeriod);
169 CMREXD
long CMRC_API CMRC_TIMEPERIOD_to_minutes(CMR_C_TIMEPERIOD timePeriod);
170 CMREXD
long CMRC_API CMRC_TIMEPERIOD_to_seconds(CMR_C_TIMEPERIOD timePeriod);
171 CMREXD
long CMRC_API CMRC_TIMEPERIOD_days(CMR_C_TIMEPERIOD timePeriod);
172 CMREXD
long CMRC_API CMRC_TIMEPERIOD_hours(CMR_C_TIMEPERIOD timePeriod);
173 CMREXD
long CMRC_API CMRC_TIMEPERIOD_minutes(CMR_C_TIMEPERIOD timePeriod);
174 CMREXD
long CMRC_API CMRC_TIMEPERIOD_seconds(CMR_C_TIMEPERIOD timePeriod);
175 CMREXD
long CMRC_API CMRC_TIMEPERIOD_microseconds(CMR_C_TIMEPERIOD timePeriod);
176 CMREXD
long CMRC_API CMRC_TIMEPERIOD_milliseconds(CMR_C_TIMEPERIOD timePeriod);
179 CMREXD
int CMRC_API CMRC_TUPLE_copy(CMR_C_TUPLE src, CMR_C_TUPLE dst);
180 CMREXD
int CMRC_API CMRC_TUPLE_splice(CMR_C_TUPLE src, CMR_C_TUPLE dst);