src/core/eds_abi_wrapper.cpp File Reference

#include "eds_abi_wrapper.h"
#include "EvolutionSyncClient.h"
#include <string>
#include <sstream>
#include <dlfcn.h>
#include <stdarg.h>

Include dependency graph for eds_abi_wrapper.cpp:

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 Documentation

#define EDS_ABI_WRAPPER_NO_REDEFINE   1

Definition at line 19 of file eds_abi_wrapper.cpp.


Function Documentation

const char* EDSAbiWrapperDebug (  ) 

Definition at line 254 of file eds_abi_wrapper.cpp.

Referenced by EvolutionSyncClient::sync().

const char* EDSAbiWrapperInfo (  ) 

Definition at line 253 of file eds_abi_wrapper.cpp.

Referenced by SyncEvolutionCmdline::run().

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().


Generated on Sat Oct 18 17:16:53 2008 for SyncEvolution and Funambol by  doxygen 1.5.7.1