00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef HAVE_OPENSYNC_H
00022 #define HAVE_OPENSYNC_H
00023
00024 #include <sys/types.h>
00025 #include <time.h>
00026 #include <fcntl.h>
00027 #include <stdio.h>
00028 #include <stdlib.h>
00029
00030 #ifdef __cplusplus
00031
00032 #define OPENSYNC_BEGIN_DECLS extern "C" {
00033 #define OPENSYNC_END_DECLS }
00034
00035 #else
00036
00037 #define OPENSYNC_BEGIN_DECLS
00038 #define OPENSYNC_END_DECLS
00039
00040 #endif
00041
00042 #ifdef _WIN32
00043 #include <windows.h>
00044 #include <process.h>
00045 #define __func__ __FUNCTION__
00046 #define OSYNC_EXPORT __declspec(dllexport)
00047
00048 #elif __GNUC__
00049 #include <unistd.h>
00050 #define OSYNC_EXPORT __attribute__ ((visibility("default")))
00051
00052 #elif __sun
00053 #include <unistd.h>
00054 #define OSYNC_EXPORT __global
00055
00056 #else
00057 #define OSYNC_EXPORT
00058 #endif
00059
00060
00061
00062
00063
00064 #ifdef opensync_testing_EXPORTS
00065 #define OSYNC_TEST_EXPORT OSYNC_EXPORT
00066 #else
00067 #define OSYNC_TEST_EXPORT
00068 #endif
00069
00070 OPENSYNC_BEGIN_DECLS
00071
00077
00078
00079
00080
00081 #define OSYNC_GROUP_MAJOR_VERSION 1
00082 #define OSYNC_GROUP_MINOR_VERSION 0
00083
00084 #define OSYNC_MEMBER_MAJOR_VERSION 1
00085 #define OSYNC_MEMBER_MINOR_VERSION 0
00086
00087 #define OSYNC_PLUGIN_MAJOR_VERSION 1
00088 #define OSYNC_PLUGIN_MINOR_VERSION 0
00089
00090
00091
00092
00093
00094 #ifndef TRUE
00095 #define TRUE 1
00096 #endif
00097
00098 #ifndef FALSE
00099 #define FALSE 0
00100 #endif
00101
00102 #define __NULLSTR(x) x ? x : "(NULL)"
00103
00104 #ifndef NDEBUG
00105 #define osync_assert(x) if (!(x)) { fprintf(stderr, "%s:%i:E:%s: Assertion \"" #x "\" failed\n", __FILE__, __LINE__, __func__); abort();}
00106 #define osync_assert_msg(x, msg) if (!(x)) { fprintf(stderr, "%s:%i:E:%s: %s\n", __FILE__, __LINE__, __func__, msg); abort();}
00107 #else
00108 #define osync_assert(x)
00109 #define osync_assert_msg(x, msg)
00110 #endif
00111
00112 #define osync_return_if_fail(condition) do { \
00113 if (!(condition)) { \
00114 return; \
00115 } } while (0)
00116
00117 #define osync_return_val_if_fail(condition, val) do { \
00118 if (!(condition)) { \
00119 return (val); \
00120 } } while (0)
00121
00122
00123 #define osync_return_if_fail_and_set_error(condition, error, errortype, format, ...) do { \
00124 if (!(condition)) { \
00125 osync_error_set(error, errortype, format,## __VA_ARGS__, NULL ); \
00126 return; \
00127 } } while(0)
00128
00129 #define osync_return_val_if_fail_and_set_error(condition, val, error, errortype, format, ...) do { \
00130 if (!(condition)) { \
00131 osync_error_set(error, errortype, format,## __VA_ARGS__, NULL ); \
00132 return (val); \
00133 } } while(0)
00134
00135 typedef int osync_bool;
00136
00137
00138
00139
00140
00141 typedef enum {
00142 OSYNC_START_TYPE_UNKNOWN,
00143 OSYNC_START_TYPE_PROCESS,
00144 OSYNC_START_TYPE_THREAD,
00145 OSYNC_START_TYPE_EXTERNAL
00146 } OSyncStartType;
00147
00151 typedef enum {
00153 OSYNC_CONV_DATA_UNKNOWN = 0,
00155 OSYNC_CONV_DATA_MISMATCH = 1,
00157 OSYNC_CONV_DATA_SIMILAR = 2,
00159 OSYNC_CONV_DATA_SAME = 3
00160 } OSyncConvCmpResult;
00161
00165 typedef enum {
00167 OSYNC_CHANGE_TYPE_UNKNOWN = 0,
00169 OSYNC_CHANGE_TYPE_ADDED = 1,
00171 OSYNC_CHANGE_TYPE_UNMODIFIED = 2,
00173 OSYNC_CHANGE_TYPE_DELETED = 3,
00175 OSYNC_CHANGE_TYPE_MODIFIED = 4
00176 } OSyncChangeType;
00177
00178
00179
00180
00181
00182
00183 typedef struct OSyncArchive OSyncArchive;
00184
00185
00186 typedef struct OSyncData OSyncData;
00187 typedef struct OSyncChange OSyncChange;
00188
00189
00190 typedef struct OSyncDB OSyncDB;
00191
00192
00193 typedef struct OSyncFormatEnv OSyncFormatEnv;
00194 typedef struct OSyncObjFormat OSyncObjFormat;
00195 typedef struct OSyncFormatConverterPath OSyncFormatConverterPath;
00196 typedef struct OSyncFormatConverter OSyncFormatConverter;
00197 typedef struct OSyncObjFormatSink OSyncObjFormatSink;
00198
00199
00200 typedef struct OSyncContext OSyncContext;
00201 typedef struct OSyncPlugin OSyncPlugin;
00202 typedef struct OSyncPluginInfo OSyncPluginInfo;
00203 typedef struct OSyncPluginEnv OSyncPluginEnv;
00204 typedef struct OSyncObjTypeSink OSyncObjTypeSink;
00205 typedef struct OSyncPluginConfig OSyncPluginConfig;
00206 typedef struct OSyncPluginAuthentication OSyncPluginAuthentication;
00207 typedef struct OSyncPluginAdvancedOption OSyncPluginAdvancedOption;
00208 typedef struct OSyncPluginAdvancedOptionParameter OSyncPluginAdvancedOptionParameter;
00209 typedef struct OSyncPluginConnection OSyncPluginConnection;
00210 typedef struct OSyncPluginLocalization OSyncPluginLocalization;
00211 typedef struct OSyncPluginResource OSyncPluginResource;
00212
00213
00214 typedef struct OSyncEngine OSyncEngine;
00215 typedef struct OSyncObjEngine OSyncObjEngine;
00216 typedef struct OSyncSinkEngine OSyncSinkEngine;
00217 typedef struct OSyncMappingEntryEngine OSyncMappingEntryEngine;
00218 typedef struct OSyncMappingEngine OSyncMappingEngine;
00219
00220
00221 typedef struct OSyncClient OSyncClient;
00222 typedef struct OSyncClientProxy OSyncClientProxy;
00223
00224
00225 typedef struct OSyncMapping OSyncMapping;
00226 typedef struct OSyncMappingTable OSyncMappingTable;
00227 typedef struct OSyncMappingEntry OSyncMappingEntry;
00228
00229
00230 typedef struct OSyncModule OSyncModule;
00231
00232
00233 typedef struct OSyncAnchor OSyncAnchor;
00234 typedef struct OSyncHashTable OSyncHashTable;
00235
00236
00237 typedef struct OSyncMessage OSyncMessage;
00238 typedef struct OSyncQueue OSyncQueue;
00239
00240
00241 typedef struct OSyncGroup OSyncGroup;
00242 typedef struct OSyncGroupEnv OSyncGroupEnv;
00243 typedef struct OSyncMember OSyncMember;
00244
00245
00246 typedef struct OSyncCapabilities OSyncCapabilities;
00247 typedef struct OSyncCapability OSyncCapability;
00248
00249
00250 typedef struct OSyncXMLFormat OSyncXMLFormat;
00251 typedef struct OSyncXMLFormatSchema OSyncXMLFormatSchema;
00252 typedef struct OSyncXMLField OSyncXMLField;
00253 typedef struct OSyncXMLFieldList OSyncXMLFieldList;
00254
00255
00256 typedef struct OSyncError OSyncError;
00257 typedef struct OSyncMarshal OSyncMarshal;
00258
00259
00260 typedef struct OSyncVersion OSyncVersion;
00261
00270 OSYNC_EXPORT const char *osync_get_version(void);
00271
00272 OPENSYNC_END_DECLS
00273
00274 #include "opensync/opensync-support.h"
00275 #include "opensync-error.h"
00276
00277 #endif