service.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: service.h 57 2005-02-08 15:27:21Z aquamaniac $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 
00014 #ifndef CHIPCARD_SERVICE_SERVICE_H
00015 #define CHIPCARD_SERVICE_SERVICE_H
00016 
00017 
00018 typedef struct LC_SERVICE LC_SERVICE;
00019 
00020 #include <gwenhywfar/ipc.h>
00021 #include <gwenhywfar/inherit.h>
00022 #include <gwenhywfar/types.h>
00023 
00024 #include <chipcard2-service/client.h>
00025 #include <chipcard2-client/client/client.h>
00026 
00027 
00028 typedef enum {
00029   LC_ServiceCheckArgsResultOk=0,
00030   LC_ServiceCheckArgsResultError,
00031   LC_ServiceCheckArgsResultVersion,
00032   LC_ServiceCheckArgsResultHelp
00033 } LC_SERVICE_CHECKARGS_RESULT;
00034 
00035 
00036 typedef GWEN_TYPE_UINT32 (*LC_SERVICE_OPEN_FN)(LC_CLIENT *cl,
00037                                                LC_SERVICECLIENT *scl,
00038                                                GWEN_DB_NODE *dbData);
00039 
00040 typedef GWEN_TYPE_UINT32 (*LC_SERVICE_CLOSE_FN)(LC_CLIENT *cl,
00041                                                 LC_SERVICECLIENT *scl,
00042                                                 GWEN_DB_NODE *dbData);
00043 
00044 typedef GWEN_TYPE_UINT32 (*LC_SERVICE_COMMAND_FN)(LC_CLIENT *cl,
00045                                                   LC_SERVICECLIENT *scl,
00046                                                   GWEN_DB_NODE *dbRequest,
00047                                                   GWEN_DB_NODE *dbResponse);
00048 
00049 typedef int (*LC_SERVICE_WORK_FN)(LC_CLIENT *cl);
00050 
00051 typedef const char* (*LC_SERVICE_GETERRORTEXT_FN)(LC_CLIENT *cl,
00052                                                   GWEN_TYPE_UINT32 err);
00053 
00054 
00055 void LC_Service_Usage(const char *prgName);
00056 
00057 LC_CLIENT *LC_Service_new(int argc, char **argv);
00058 void LC_Service_free(LC_SERVICE *d);
00059 
00060 const char *LC_Service_GetServiceDataDir(const LC_CLIENT *d);
00061 const char *LC_Service_GetLibraryFile(const LC_CLIENT *d);
00062 const char *LC_Service_GetServiceId(const LC_CLIENT *d);
00063 
00064 LC_SERVICECLIENT_LIST *LC_Service_GetClients(const LC_CLIENT *d);
00065 
00066 
00067 int LC_Service_Connect(LC_CLIENT *cl, const char *code, const char *text);
00068 
00069 int LC_Service_Work(LC_CLIENT *d);
00070 
00071 GWEN_TYPE_UINT32 LC_Service_Open(LC_CLIENT *d,
00072                                  LC_SERVICECLIENT *scl,
00073                                  GWEN_DB_NODE *dbData);
00074 
00075 GWEN_TYPE_UINT32 LC_Service_Close(LC_CLIENT *d,
00076                                   LC_SERVICECLIENT *scl,
00077                                   GWEN_DB_NODE *dbData);
00078 
00079 GWEN_TYPE_UINT32 LC_Service_Command(LC_CLIENT *d,
00080                                     LC_SERVICECLIENT *scl,
00081                                     GWEN_DB_NODE *dbRequest,
00082                                     GWEN_DB_NODE *dbResponse);
00083 
00084 const char *LC_Service_GetErrorText(LC_CLIENT *d,
00085                                     GWEN_TYPE_UINT32 err);
00086 
00087 
00088 void LC_Service_SetOpenFn(LC_CLIENT *d, LC_SERVICE_OPEN_FN fn);
00089 void LC_Service_SetCloseFn(LC_CLIENT *d, LC_SERVICE_CLOSE_FN fn);
00090 void LC_Service_SetCommandFn(LC_CLIENT *d, LC_SERVICE_COMMAND_FN fn);
00091 void LC_Service_SetGetErrorTextFn(LC_CLIENT *d,
00092                                   LC_SERVICE_GETERRORTEXT_FN fn);
00093 void LC_Service_SetWorkFn(LC_CLIENT *d, LC_SERVICE_WORK_FN fn);
00094 
00095 
00096 
00097 
00098 LC_SERVICECLIENT *LC_Service_FindClientById(const LC_CLIENT *d,
00099                                             GWEN_TYPE_UINT32 id);
00100 
00101 void LC_Service_AddClient(LC_CLIENT *d, LC_SERVICECLIENT *cl);
00102 void LC_Service_DelClient(LC_CLIENT *d, LC_SERVICECLIENT *cl);
00103 
00104 int LC_Service_Connect(LC_CLIENT *d,
00105                        const char *code,
00106                        const char *text);
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 #endif /* CHIPCARD_SERVICE_SERVICE_H */
00115 
00116 
00117 
00118 

Generated on Sat Sep 22 04:38:38 2007 for libchipcard2 by  doxygen 1.5.3