ipc.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: ipc.h 892 2005-11-03 00:20:45Z aquamaniac $
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/netlayer.h>
00021 #include <gwenhywfar/inherit.h>
00022 #include <gwenhywfar/list2.h>
00023 
00024 #include <time.h>
00025 #include <stdio.h>
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030 
00035 #define GWEN_IPC_ERROR_CODES   0x80000000
00036 #define GWEN_IPC_ERROR_GENERIC 0x80000001
00037 #define GWEN_IPC_ERROR_CONNERR 0x80000002
00038 #define GWEN_IPC_ERROR_TIMEOUT 0x80000003
00039 
00043 typedef struct GWEN_IPCMANAGER GWEN_IPCMANAGER;
00044 
00045 
00046 GWENHYWFAR_API
00047 GWEN_IPCMANAGER *GWEN_IpcManager_new();
00048 
00049 GWENHYWFAR_API
00050 void GWEN_IpcManager_free(GWEN_IPCMANAGER *mgr);
00051 
00052 GWENHYWFAR_API
00053 void GWEN_IpcManager_Attach(GWEN_IPCMANAGER *mgr);
00054 
00055 GWENHYWFAR_API
00056 void GWEN_IpcManager_Dump(GWEN_IPCMANAGER *mgr, FILE *f, int indent);
00057 
00058 
00059 GWENHYWFAR_API
00060 const char *GWEN_IpcManager_GetApplicationName(const GWEN_IPCMANAGER *mgr);
00061 
00062 GWENHYWFAR_API
00063 void GWEN_IpcManager_SetApplicationName(GWEN_IPCMANAGER *mgr,
00064                                         const char *name);
00065 
00066 
00070 GWENHYWFAR_API
00071 int GWEN_IpcManager_Disconnect(GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid);
00072 
00085 GWENHYWFAR_API
00086 GWEN_TYPE_UINT32 GWEN_IpcManager_AddServer(GWEN_IPCMANAGER *mgr,
00087                                            GWEN_NETLAYER *nlBase,
00088                                            GWEN_TYPE_UINT32 mark);
00089 
00104 GWENHYWFAR_API
00105 GWEN_TYPE_UINT32 GWEN_IpcManager_AddClient(GWEN_IPCMANAGER *mgr,
00106                                            GWEN_NETLAYER *nlBase,
00107                                            GWEN_TYPE_UINT32 mark);
00114 GWENHYWFAR_API
00115 int GWEN_IpcManager_RemoveClient(GWEN_IPCMANAGER *mgr,
00116                                  GWEN_TYPE_UINT32 nid);
00117 
00127 GWENHYWFAR_API
00128 GWEN_TYPE_UINT32 GWEN_IpcManager_SendRequest(GWEN_IPCMANAGER *mgr,
00129                                              GWEN_TYPE_UINT32 nid,
00130                                              GWEN_DB_NODE *req);
00131 
00140 GWENHYWFAR_API
00141 GWEN_TYPE_UINT32 GWEN_IpcManager_SendMultiRequest(GWEN_IPCMANAGER *mgr,
00142                                                   GWEN_TYPE_UINT32 mark,
00143                                                   GWEN_DB_NODE *req);
00144 
00153 GWENHYWFAR_API
00154 int GWEN_IpcManager_SendResponse(GWEN_IPCMANAGER *mgr,
00155                                  GWEN_TYPE_UINT32 rid,
00156                                  GWEN_DB_NODE *rsp);
00157 
00168 GWENHYWFAR_API
00169 int GWEN_IpcManager_RemoveRequest(GWEN_IPCMANAGER *mgr,
00170                                   GWEN_TYPE_UINT32 rid,
00171                                   int outbound);
00172 
00182 GWENHYWFAR_API
00183 GWEN_TYPE_UINT32 GWEN_IpcManager_GetNextInRequest(GWEN_IPCMANAGER *mgr,
00184                                                   GWEN_TYPE_UINT32 mark);
00185 
00203 GWENHYWFAR_API
00204 GWEN_DB_NODE *GWEN_IpcManager_GetInRequestData(GWEN_IPCMANAGER *mgr,
00205                                                GWEN_TYPE_UINT32 rid);
00206 
00207 
00217 GWENHYWFAR_API
00218 GWEN_DB_NODE *GWEN_IpcManager_GetResponseData(GWEN_IPCMANAGER *mgr,
00219                                               GWEN_TYPE_UINT32 rid);
00220 
00230 GWENHYWFAR_API
00231 GWEN_DB_NODE *GWEN_IpcManager_PeekResponseData(GWEN_IPCMANAGER *mgr,
00232                                                GWEN_TYPE_UINT32 rid);
00233 
00234 
00240 GWENHYWFAR_API
00241 int GWEN_IpcManager_Work(GWEN_IPCMANAGER *mgr);
00242 
00243 
00247 GWENHYWFAR_API
00248 GWEN_NETLAYER *GWEN_IpcManager_GetNetLayer(GWEN_IPCMANAGER *mgr,
00249                                            GWEN_TYPE_UINT32 nid);
00250 
00251 GWENHYWFAR_API
00252 GWEN_TYPE_UINT32
00253 GWEN_IpcManager_GetClientForNetLayer(const GWEN_IPCMANAGER *mgr,
00254                                      const GWEN_NETLAYER *nl);
00255 
00256 
00257 
00258 
00259 #ifdef __cplusplus
00260 }
00261 #endif
00262 
00263 #endif /* GWEN_IPC_H */
00264 
00265 
00266 
00267 

Generated on Tue May 1 12:56:30 2007 for gwenhywfar by  doxygen 1.5.1