st_storage_be.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003  -------------------
00004  cvs         : $Id: csv_p.h 120 2003-12-03 23:29:33Z aquamaniac $
00005  begin       : Thu Oct 30 2003
00006  copyright   : (C) 2003 by Martin Preuss
00007  email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *                                                                         *
00011  *   This library is free software; you can redistribute it and/or         *
00012  *   modify it under the terms of the GNU Lesser General Public            *
00013  *   License as published by the Free Software Foundation; either          *
00014  *   version 2.1 of the License, or (at your option) any later version.    *
00015  *                                                                         *
00016  *   This library is distributed in the hope that it will be useful,       *
00017  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00018  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00019  *   Lesser General Public License for more details.                       *
00020  *                                                                         *
00021  *   You should have received a copy of the GNU Lesser General Public      *
00022  *   License along with this library; if not, write to the Free Software   *
00023  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston,                 *
00024  *   MA  02111-1307  USA                                                   *
00025  *                                                                         *
00026  ***************************************************************************/
00027 
00028 #ifndef GWEN_STO_STORAGE_BE_H
00029 #define GWEN_STO_STORAGE_BE_H
00030 
00031 
00032 #include <gwenhywfar/st_storage_be.h>
00033 #include <gwenhywfar/st_client_be.h>
00034 #include <gwenhywfar/st_type_be.h>
00035 #include <gwenhywfar/st_object_be.h>
00036 #include <gwenhywfar/st_find.h>
00037 #include <gwenhywfar/inherit.h>
00038 
00039 
00040 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_STO_STORAGE, GWENHYWFAR_API)
00041 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_STO_STORAGE, GWEN_StoStorage, GWENHYWFAR_API)
00042 
00043 
00044 typedef int (*GWEN_STO_STORAGE_REGISTERCLIENT_FN)(GWEN_STO_STORAGE *st,
00045                                                   const char *userName,
00046                                                   GWEN_STO_CLIENT **pcl);
00047 typedef int (*GWEN_STO_STORAGE_UNREGISTERCLIENT_FN)(GWEN_STO_STORAGE *st,
00048                                                     GWEN_STO_CLIENT *cl);
00049 
00050 
00051 typedef int (*GWEN_STO_STORAGE_CREATE_FN)(GWEN_STO_STORAGE *st,
00052                                           GWEN_STO_CLIENT *cl);
00053 
00054 typedef int (*GWEN_STO_STORAGE_OPEN_FN)(GWEN_STO_STORAGE *st,
00055                                         GWEN_STO_CLIENT *cl,
00056                                         GWEN_TYPE_UINT32 openFlags);
00057 
00058 typedef int (*GWEN_STO_STORAGE_CLOSE_FN)(GWEN_STO_STORAGE *st,
00059                                          GWEN_STO_CLIENT *cl,
00060                                          const char *reason);
00061 
00062 typedef int (*GWEN_STO_STORAGE_BEGINEDIT_FN)(GWEN_STO_STORAGE *st,
00063                                              GWEN_STO_CLIENT *cl);
00064 typedef int (*GWEN_STO_STORAGE_ENDEDIT_FN)(GWEN_STO_STORAGE *st,
00065                                            GWEN_STO_CLIENT *cl,
00066                                            GWEN_STO_CLOSEMODE cm);
00067 
00068 
00069 typedef int (*GWEN_STO_STORAGE_CREATETYPE_FN)(GWEN_STO_STORAGE *st,
00070                                               GWEN_STO_CLIENT *cl,
00071                                               const char *typeName,
00072                                               const char *name,
00073                                               GWEN_STO_TYPE **pts);
00074 
00075 
00076 typedef int (*GWEN_STO_STORAGE_OPENTYPE_FN)(GWEN_STO_STORAGE *st,
00077                                             GWEN_STO_CLIENT *cl,
00078                                             const char *typeName,
00079                                             const char *name,
00080                                             GWEN_TYPE_UINT32 openFlags,
00081                                             GWEN_STO_TYPE **pts);
00082 
00083 typedef int (*GWEN_STO_STORAGE_CLOSETYPE_FN)(GWEN_STO_STORAGE *st,
00084                                              GWEN_STO_CLIENT *cl,
00085                                              GWEN_STO_TYPE *ts);
00086 
00087 
00088 
00089 typedef int (*GWEN_STO_STORAGE_FINDFIRSTOBJECT_FN)(GWEN_STO_STORAGE *st,
00090                                                    GWEN_STO_CLIENT *cl,
00091                                                    GWEN_STO_TYPE *ts,
00092                                                    GWEN_STO_FIND **pfnd,
00093                                                    GWEN_TYPE_UINT32 *id);
00094 typedef int (*GWEN_STO_STORAGE_FINDNEXTOBJECT_FN)(GWEN_STO_STORAGE *st,
00095                                                   GWEN_STO_CLIENT *cl,
00096                                                   GWEN_STO_TYPE *ts,
00097                                                   GWEN_STO_FIND *fnd,
00098                                                   GWEN_TYPE_UINT32 *id);
00099 typedef int (*GWEN_STO_STORAGE_CLOSEFIND_FN)(GWEN_STO_STORAGE *st,
00100                                              GWEN_STO_CLIENT *cl,
00101                                              GWEN_STO_TYPE *ts,
00102                                              GWEN_STO_FIND *fnd);
00103 
00104 typedef int (*GWEN_STO_STORAGE_CREATEOBJECT_FN)(GWEN_STO_STORAGE *st,
00105                                                 GWEN_STO_CLIENT *cl,
00106                                                 GWEN_STO_TYPE *ts,
00107                                                 GWEN_STO_OBJECT **po);
00108 
00109 typedef int (*GWEN_STO_STORAGE_OPENOBJECT_FN)(GWEN_STO_STORAGE *st,
00110                                               GWEN_STO_CLIENT *cl,
00111                                               GWEN_STO_TYPE *ts,
00112                                               GWEN_TYPE_UINT32 id,
00113                                               GWEN_TYPE_UINT32 openFlags,
00114                                               GWEN_STO_OBJECT **po);
00115 
00116 typedef int (*GWEN_STO_STORAGE_CLOSEOBJECT_FN)(GWEN_STO_STORAGE *st,
00117                                                GWEN_STO_CLIENT *cl,
00118                                                GWEN_STO_TYPE *ts,
00119                                                GWEN_STO_OBJECT *o);
00120 
00121 typedef int (*GWEN_STO_STORAGE_DELETEOBJECT_FN)(GWEN_STO_STORAGE *st,
00122                                                 GWEN_STO_CLIENT *cl,
00123                                                 GWEN_STO_TYPE *ts,
00124                                                 GWEN_STO_OBJECT *o);
00125 
00126 typedef int (*GWEN_STO_STORAGE_LOCKOBJECT_FN)(GWEN_STO_STORAGE *st,
00127                                               GWEN_STO_CLIENT *cl,
00128                                               GWEN_STO_TYPE *ts,
00129                                               GWEN_TYPE_UINT32 id,
00130                                               GWEN_STO_LOCKMODE lm);
00131 
00132 
00133 GWENHYWFAR_API
00134 GWEN_STO_STORAGE *GWEN_StoStorage_new(const char *typeName,
00135                                       const char *address);
00136 
00137 
00138 GWENHYWFAR_API
00139 GWEN_STO_CLIENT_LIST*
00140   GWEN_StoStorage_GetClientList(const GWEN_STO_STORAGE *st);
00141 
00142 GWENHYWFAR_API
00143 GWEN_STO_CLIENT *GWEN_StoStorage_FindClient(const GWEN_STO_STORAGE *st,
00144                                             GWEN_TYPE_UINT32 id);
00145 
00146 
00147 GWENHYWFAR_API
00148 GWEN_STO_TYPE_LIST*
00149   GWEN_StoStorage_GetTypeList(const GWEN_STO_STORAGE *st);
00150 
00151 GWENHYWFAR_API
00152 GWEN_STO_TYPE *GWEN_StoStorage_FindTypeById(const GWEN_STO_STORAGE *st,
00153                                             GWEN_TYPE_UINT32 id);
00154 
00155 GWENHYWFAR_API
00156 GWEN_STO_TYPE *GWEN_StoStorage_FindTypeByName(const GWEN_STO_STORAGE *st,
00157                                               const char *typeName,
00158                                               const char *name);
00159 
00160 GWENHYWFAR_API
00161 void GWEN_StoStorage_AddType(GWEN_STO_STORAGE *st, GWEN_STO_TYPE *ty);
00162 
00163 
00164 GWENHYWFAR_API
00165 GWEN_STO_OBJECT_LIST*
00166   GWEN_StoStorage_GetObjectList(const GWEN_STO_STORAGE *st);
00167 
00168 GWENHYWFAR_API
00169 GWEN_STO_OBJECT *GWEN_StoStorage_FindObject(const GWEN_STO_STORAGE *st,
00170                                             GWEN_TYPE_UINT32 id);
00171 
00172 GWENHYWFAR_API
00173 void GWEN_StoStorage_AddObject(GWEN_STO_STORAGE *st, GWEN_STO_OBJECT *o);
00174 
00175 
00176 
00177 GWENHYWFAR_API
00178 GWEN_STO_CLOSEMODE GWEN_StoCloseMode_fromString(const char *s);
00179 
00180 GWENHYWFAR_API
00181 const char *GWEN_StoCloseMode_toString(GWEN_STO_CLOSEMODE cm);
00182 
00183 GWENHYWFAR_API
00184 GWEN_STO_LOCKMODE GWEN_StoLockMode_fromString(const char *s);
00185 
00186 GWENHYWFAR_API
00187 const char *GWEN_StoLockMode_toString(GWEN_STO_LOCKMODE lm);
00188 
00189 
00190 GWENHYWFAR_API
00191 void GWEN_StoStorage_LogCallback(GWEN_STO_STORAGE *st,
00192                                  const GWEN_STO_LOG *log);
00193 
00194 
00195 
00196 GWENHYWFAR_API
00197 GWEN_STO_STORAGE_CREATE_FN
00198 GWEN_StoStorage_SetCreateFn(GWEN_STO_STORAGE *st,
00199                             GWEN_STO_STORAGE_CREATE_FN f);
00200 
00201 GWENHYWFAR_API
00202 GWEN_STO_STORAGE_OPEN_FN
00203 GWEN_StoStorage_SetOpenFn(GWEN_STO_STORAGE *st,
00204                           GWEN_STO_STORAGE_OPEN_FN f);
00205 
00206 GWENHYWFAR_API
00207 GWEN_STO_STORAGE_CLOSE_FN
00208 GWEN_StoStorage_SetCloseFn(GWEN_STO_STORAGE *st,
00209                            GWEN_STO_STORAGE_CLOSE_FN f);
00210 
00211 GWENHYWFAR_API
00212 GWEN_STO_STORAGE_REGISTERCLIENT_FN
00213 GWEN_StoStorage_SetRegisterClientFn(GWEN_STO_STORAGE *st,
00214                                     GWEN_STO_STORAGE_REGISTERCLIENT_FN f);
00215 
00216 GWENHYWFAR_API
00217 GWEN_STO_STORAGE_UNREGISTERCLIENT_FN
00218 GWEN_StoStorage_SetUnregisterClientFn(GWEN_STO_STORAGE *st,
00219                                       GWEN_STO_STORAGE_UNREGISTERCLIENT_FN f);
00220 
00221 GWENHYWFAR_API
00222 GWEN_STO_STORAGE_BEGINEDIT_FN
00223 GWEN_StoStorage_SetBeginEditFn(GWEN_STO_STORAGE *st,
00224                                GWEN_STO_STORAGE_BEGINEDIT_FN f);
00225 
00226 GWENHYWFAR_API
00227 GWEN_STO_STORAGE_ENDEDIT_FN
00228 GWEN_StoStorage_SetEndEditFn(GWEN_STO_STORAGE *st,
00229                              GWEN_STO_STORAGE_ENDEDIT_FN f);
00230 
00231 GWENHYWFAR_API
00232 GWEN_STO_STORAGE_CREATETYPE_FN
00233 GWEN_StoStorage_SetCreateTypeFn(GWEN_STO_STORAGE *st,
00234                                 GWEN_STO_STORAGE_CREATETYPE_FN f);
00235 
00236 GWENHYWFAR_API
00237 GWEN_STO_STORAGE_OPENTYPE_FN
00238 GWEN_StoStorage_SetOpenTypeFn(GWEN_STO_STORAGE *st,
00239                               GWEN_STO_STORAGE_OPENTYPE_FN f);
00240 
00241 GWENHYWFAR_API
00242 GWEN_STO_STORAGE_CLOSETYPE_FN
00243 GWEN_StoStorage_SetCloseTypeFn(GWEN_STO_STORAGE *st,
00244                                GWEN_STO_STORAGE_CLOSETYPE_FN f);
00245 
00246 GWENHYWFAR_API
00247 GWEN_STO_STORAGE_FINDFIRSTOBJECT_FN
00248 GWEN_StoStorage_SetFindFirstObjectFn(GWEN_STO_STORAGE *st,
00249                                      GWEN_STO_STORAGE_FINDFIRSTOBJECT_FN f);
00250 
00251 GWENHYWFAR_API
00252 GWEN_STO_STORAGE_FINDNEXTOBJECT_FN
00253 GWEN_StoStorage_SetFindNextObjectFn(GWEN_STO_STORAGE *st,
00254                                     GWEN_STO_STORAGE_FINDNEXTOBJECT_FN f);
00255 
00256 GWENHYWFAR_API
00257 GWEN_STO_STORAGE_CLOSEFIND_FN
00258 GWEN_StoStorage_SetCloseFindFn(GWEN_STO_STORAGE *st,
00259                                GWEN_STO_STORAGE_CLOSEFIND_FN f);
00260 
00261 GWENHYWFAR_API
00262 GWEN_STO_STORAGE_CREATEOBJECT_FN
00263 GWEN_StoStorage_SetCreateObjectFn(GWEN_STO_STORAGE *st,
00264                                   GWEN_STO_STORAGE_CREATEOBJECT_FN f);
00265 
00266 GWENHYWFAR_API
00267 GWEN_STO_STORAGE_OPENOBJECT_FN
00268 GWEN_StoStorage_SetOpenObjectFn(GWEN_STO_STORAGE *st,
00269                                 GWEN_STO_STORAGE_OPENOBJECT_FN f);
00270 
00271 GWENHYWFAR_API
00272 GWEN_STO_STORAGE_CLOSEOBJECT_FN
00273 GWEN_StoStorage_SetCloseObjectFn(GWEN_STO_STORAGE *st,
00274                                  GWEN_STO_STORAGE_CLOSEOBJECT_FN f);
00275 
00276 GWENHYWFAR_API
00277 GWEN_STO_STORAGE_DELETEOBJECT_FN
00278 GWEN_StoStorage_SetDeleteObjectFn(GWEN_STO_STORAGE *st,
00279                                   GWEN_STO_STORAGE_DELETEOBJECT_FN f);
00280 
00281 GWENHYWFAR_API
00282 GWEN_STO_STORAGE_LOCKOBJECT_FN
00283 GWEN_StoStorage_SetLockObjectFn(GWEN_STO_STORAGE *st,
00284                                 GWEN_STO_STORAGE_LOCKOBJECT_FN f);
00285 
00286 
00287 
00288 #endif
00289 
00290 
00291 

Generated on Sat Sep 16 11:19:15 2006 for gwenhywfar by  doxygen 1.4.7