#include "eds_abi_wrapper.h"
#include "EvolutionSyncClient.h"
#include <string>
#include <sstream>
#include <dlfcn.h>
#include <stdarg.h>
Go to the source code of this file.
Defines | |
#define | EDS_ABI_WRAPPER_NO_REDEFINE 1 |
Functions | |
void | EDSAbiWrapperInit () |
const char * | EDSAbiWrapperInfo () |
const char * | EDSAbiWrapperDebug () |
#define EDS_ABI_WRAPPER_NO_REDEFINE 1 |
Definition at line 19 of file eds_abi_wrapper.cpp.
const char* EDSAbiWrapperDebug | ( | ) |
const char* EDSAbiWrapperInfo | ( | ) |
void EDSAbiWrapperInit | ( | ) |
The purpose of this file is to separate SyncEvolution from Evolution Dataserver ABI changes by never depending directly on any symbol in its libraries. Instead all functions are called via function pointers found via dlopen/dlsym.
This is more flexible than linking against a specific revision of the libs, but circumvents the usual lib versioning and therefore may fail when the functions needed by SyncEvolution change.
History shows that this has not happened for a long time whereas the version of libs had to be bumped quite a few times due to other changes.
To use the wrappers, include this header file. It overrides the normal C API functions with the function pointers via defines.
Definition at line 146 of file eds_abi_wrapper.cpp.
Referenced by main().