00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GWEN_STO_STORAGE_H
00029 #define GWEN_STO_STORAGE_H
00030
00031
00032 typedef struct GWEN_STO_STORAGE GWEN_STO_STORAGE;
00033
00034 #include <gwenhywfar/types.h>
00035 #include <gwenhywfar/st_log.h>
00036
00037
00038 #define GWEN_STO_OPENFLAGS_RD 0x00000001
00039 #define GWEN_STO_OPENFLAGS_WR 0x00000002
00040
00041
00042 typedef enum {
00043 GWEN_StoCloseMode_Unknown=0,
00044 GWEN_StoCloseMode_Normal,
00045 GWEN_StoCloseMode_NoUpdate,
00046 GWEN_StoCloseMode_Delete
00047 } GWEN_STO_CLOSEMODE;
00048
00049
00050 typedef enum {
00051 GWEN_StoLockMode_Unknown=0,
00052 GWEN_StoLockMode_Lock,
00053 GWEN_StoLockMode_Unlock
00054 } GWEN_STO_LOCKMODE;
00055
00056 typedef void (*GWEN_STO_STORAGE_LOG_CB)(GWEN_STO_STORAGE *st,
00057 const GWEN_STO_LOG *log);
00058
00059
00060 #include <gwenhywfar/st_client.h>
00061
00062
00063 GWENHYWFAR_API
00064 GWEN_STO_STORAGE *GWEN_StoStorage_Factory(const char *modname,
00065 const char *address);
00066
00067
00068 GWENHYWFAR_API
00069 void GWEN_StoStorage_free(GWEN_STO_STORAGE *st);
00070
00071 GWENHYWFAR_API
00072 const char *GWEN_StoStorage_GetTypeName(const GWEN_STO_STORAGE *st);
00073
00074 GWENHYWFAR_API
00075 const char *GWEN_StoStorage_GetAddress(const GWEN_STO_STORAGE *st);
00076
00077 GWENHYWFAR_API
00078 GWEN_STO_STORAGE_LOG_CB
00079 GWEN_StoStorage_SetLog_Cb(GWEN_STO_STORAGE *st,
00080 GWEN_STO_STORAGE_LOG_CB cb);
00081
00082 GWENHYWFAR_API
00083 int GWEN_StoStorage_RegisterClient(GWEN_STO_STORAGE *st,
00084 const char *userName,
00085 GWEN_STO_CLIENT **pcl);
00086
00087 GWENHYWFAR_API
00088 int GWEN_StoStorage_UnregisterClient(GWEN_STO_STORAGE *st,
00089 GWEN_STO_CLIENT *cl);
00090
00091 #endif
00092
00093
00094