ipc.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: ipc.h,v $
00003                              -------------------
00004     cvs         : $Id: ipc.h,v 1.32 2005/10/13 05:22:49 aquamaniac Exp $
00005     begin       : Fri May 07 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 GWEN_IPC_H
00015 #define GWEN_IPC_H
00016 
00017 
00018 #include <gwenhywfar/types.h>
00019 #include <gwenhywfar/db.h>
00020 #include <gwenhywfar/nettransport.h>
00021 #include <gwenhywfar/netconnection.h>
00022 #include <gwenhywfar/inherit.h>
00023 #include <gwenhywfar/list2.h>
00024 
00025 #include <time.h>
00026 #include <stdio.h>
00027 
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031 
00036 #define GWEN_IPC_ERROR_CODES   0x80000000
00037 #define GWEN_IPC_ERROR_GENERIC 0x80000001
00038 #define GWEN_IPC_ERROR_CONNERR 0x80000002
00039 #define GWEN_IPC_ERROR_TIMEOUT 0x80000003
00040 
00044 typedef struct GWEN_IPCMANAGER GWEN_IPCMANAGER;
00045 
00046 
00047 GWENHYWFAR_API
00048 GWEN_IPCMANAGER *GWEN_IPCManager_new();
00049 
00050 GWENHYWFAR_API
00051 void GWEN_IPCManager_free(GWEN_IPCMANAGER *mgr);
00052 
00053 GWENHYWFAR_API
00054 void GWEN_IPCManager_Attach(GWEN_IPCMANAGER *mgr);
00055 
00056 GWENHYWFAR_API
00057 void GWEN_IPCManager_Dump(GWEN_IPCMANAGER *mgr, FILE *f, int indent);
00058 
00059 
00060 GWENHYWFAR_API
00061 const char *GWEN_IPCManager_GetApplicationName(const GWEN_IPCMANAGER *mgr);
00062 
00063 GWENHYWFAR_API
00064 void GWEN_IPCManager_SetApplicationName(GWEN_IPCMANAGER *mgr,
00065                                         const char *name);
00066 
00067 
00072 GWENHYWFAR_API
00073 void GWEN_IPCManager_SetUpFn(GWEN_IPCMANAGER *mgr,
00074                              GWEN_TYPE_UINT32 id,
00075                              GWEN_NETCONNECTION_UPFN fn);
00076 
00081 GWENHYWFAR_API
00082 void GWEN_IPCManager_SetDownFn(GWEN_IPCMANAGER *mgr,
00083                                GWEN_TYPE_UINT32 id,
00084                                GWEN_NETCONNECTION_DOWNFN fn);
00085 
00089 GWENHYWFAR_API
00090 int GWEN_IPCManager_Disconnect(GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid);
00091 
00096 GWENHYWFAR_API
00097 GWEN_NETTRANSPORT_STATUS
00098 GWEN_IPCManager_CheckConnection(GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid);
00099 
00100 
00113 GWENHYWFAR_API
00114 GWEN_TYPE_UINT32 GWEN_IPCManager_AddServer(GWEN_IPCMANAGER *mgr,
00115                                            GWEN_NETTRANSPORT *tr,
00116                                            GWEN_TYPE_UINT32 mark);
00117 
00132 GWENHYWFAR_API
00133 GWEN_TYPE_UINT32 GWEN_IPCManager_AddClient(GWEN_IPCMANAGER *mgr,
00134                                            GWEN_NETTRANSPORT *tr,
00135                                            const char *userName,
00136                                            const char *passwd,
00137                                            GWEN_TYPE_UINT32 mark);
00144 GWENHYWFAR_API
00145 int GWEN_IPCManager_RemoveClient(GWEN_IPCMANAGER *mgr,
00146                                  GWEN_TYPE_UINT32 nid);
00147 
00157 GWENHYWFAR_API
00158 GWEN_TYPE_UINT32 GWEN_IPCManager_SendRequest(GWEN_IPCMANAGER *mgr,
00159                                              GWEN_TYPE_UINT32 nid,
00160                                              GWEN_DB_NODE *req);
00161 
00170 GWENHYWFAR_API
00171 GWEN_TYPE_UINT32 GWEN_IPCManager_SendMultiRequest(GWEN_IPCMANAGER *mgr,
00172                                                   GWEN_TYPE_UINT32 mark,
00173                                                   GWEN_DB_NODE *req);
00174 
00183 GWENHYWFAR_API
00184 int GWEN_IPCManager_SendResponse(GWEN_IPCMANAGER *mgr,
00185                                  GWEN_TYPE_UINT32 rid,
00186                                  GWEN_DB_NODE *rsp);
00187 
00198 GWENHYWFAR_API
00199 int GWEN_IPCManager_RemoveRequest(GWEN_IPCMANAGER *mgr,
00200                                   GWEN_TYPE_UINT32 rid,
00201                                   int outbound);
00202 
00212 GWENHYWFAR_API
00213 GWEN_TYPE_UINT32 GWEN_IPCManager_GetNextInRequest(GWEN_IPCMANAGER *mgr,
00214                                                   GWEN_TYPE_UINT32 mark);
00215 
00233 GWENHYWFAR_API
00234 GWEN_DB_NODE *GWEN_IPCManager_GetInRequestData(GWEN_IPCMANAGER *mgr,
00235                                                GWEN_TYPE_UINT32 rid);
00236 
00237 
00247 GWENHYWFAR_API
00248 GWEN_DB_NODE *GWEN_IPCManager_GetResponseData(GWEN_IPCMANAGER *mgr,
00249                                               GWEN_TYPE_UINT32 rid);
00250 
00260 GWENHYWFAR_API
00261 GWEN_DB_NODE *GWEN_IPCManager_PeekResponseData(GWEN_IPCMANAGER *mgr,
00262                                                GWEN_TYPE_UINT32 rid);
00263 
00264 
00270 GWENHYWFAR_API
00271 int GWEN_IPCManager_Work(GWEN_IPCMANAGER *mgr, int maxmsg);
00272 
00273 
00277 GWENHYWFAR_API
00278 GWEN_NETCONNECTION *GWEN_IPCManager_GetConnection(GWEN_IPCMANAGER *mgr,
00279                                                   GWEN_TYPE_UINT32 nid);
00280 
00281 GWENHYWFAR_API
00282 GWEN_TYPE_UINT32
00283 GWEN_IPCManager_GetClientForConnection(const GWEN_IPCMANAGER *mgr,
00284                                        const GWEN_NETCONNECTION *conn);
00285 
00286 
00287 
00288 
00289 #ifdef __cplusplus
00290 }
00291 #endif
00292 
00293 #endif /* GWEN_IPC_H */
00294 
00295 
00296 
00297 

Generated on Wed Jan 11 16:49:07 2006 for gwenhywfar by  doxygen 1.4.6