ipc.h File Reference
#include <gwenhywfar/types.h>
#include <gwenhywfar/db.h>
#include <gwenhywfar/netlayer.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/list2.h>
#include <time.h>
#include <stdio.h>
Go to the source code of this file.
|
Defines |
|
| #define | GWEN_IPC_ERROR_CODES 0x80000000 |
| #define | GWEN_IPC_ERROR_CONNERR 0x80000002 |
| #define | GWEN_IPC_ERROR_GENERIC 0x80000001 |
| #define | GWEN_IPC_ERROR_TIMEOUT 0x80000003 |
Typedefs |
| typedef struct GWEN_IPCMANAGER | GWEN_IPCMANAGER |
Functions |
| GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_IpcManager_AddClient (GWEN_IPCMANAGER *mgr, GWEN_NETLAYER *nlBase, GWEN_TYPE_UINT32 mark) |
| GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_IpcManager_AddServer (GWEN_IPCMANAGER *mgr, GWEN_NETLAYER *nlBase, GWEN_TYPE_UINT32 mark) |
| GWENHYWFAR_API void | GWEN_IpcManager_Attach (GWEN_IPCMANAGER *mgr) |
| GWENHYWFAR_API int | GWEN_IpcManager_Disconnect (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid) |
| GWENHYWFAR_API void | GWEN_IpcManager_Dump (GWEN_IPCMANAGER *mgr, FILE *f, int indent) |
| GWENHYWFAR_API void | GWEN_IpcManager_free (GWEN_IPCMANAGER *mgr) |
| GWENHYWFAR_API const char * | GWEN_IpcManager_GetApplicationName (const GWEN_IPCMANAGER *mgr) |
| GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_IpcManager_GetClientForNetLayer (const GWEN_IPCMANAGER *mgr, const GWEN_NETLAYER *nl) |
| GWENHYWFAR_API GWEN_DB_NODE * | GWEN_IpcManager_GetInRequestData (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 rid) |
| GWENHYWFAR_API GWEN_NETLAYER * | GWEN_IpcManager_GetNetLayer (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid) |
| GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_IpcManager_GetNextInRequest (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 mark) |
| GWENHYWFAR_API GWEN_DB_NODE * | GWEN_IpcManager_GetResponseData (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 rid) |
| GWENHYWFAR_API GWEN_IPCMANAGER * | GWEN_IpcManager_new () |
| GWENHYWFAR_API GWEN_DB_NODE * | GWEN_IpcManager_PeekResponseData (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 rid) |
| GWENHYWFAR_API int | GWEN_IpcManager_RemoveClient (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid) |
| GWENHYWFAR_API int | GWEN_IpcManager_RemoveRequest (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 rid, int outbound) |
| GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_IpcManager_SendMultiRequest (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 mark, GWEN_DB_NODE *req) |
| GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_IpcManager_SendRequest (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 nid, GWEN_DB_NODE *req) |
| GWENHYWFAR_API int | GWEN_IpcManager_SendResponse (GWEN_IPCMANAGER *mgr, GWEN_TYPE_UINT32 rid, GWEN_DB_NODE *rsp) |
| GWENHYWFAR_API void | GWEN_IpcManager_SetApplicationName (GWEN_IPCMANAGER *mgr, const char *name) |
| GWENHYWFAR_API int | GWEN_IpcManager_Work (GWEN_IPCMANAGER *mgr) |
Define Documentation
| #define GWEN_IPC_ERROR_CODES 0x80000000 |
| #define GWEN_IPC_ERROR_CONNERR 0x80000002 |
| #define GWEN_IPC_ERROR_GENERIC 0x80000001 |
| #define GWEN_IPC_ERROR_TIMEOUT 0x80000003 |
Typedef Documentation
Function Documentation
Adds a client to the IPC manager. The connection will not be established until needed.
- Returns:
- node id of the node created (0 on error)
- Parameters:
-
| mgr | pointer to the IPC manager object |
| tr | transport layer to be used (this MUST not be connected or in listening state) |
| userName | if given this name will be used for HTTP authorization |
| passwd | if given this password will be used for HTTP authorization |
| mark | a value assigned to the new connection. This value can be used for functions GWEN_IpcManager_GetNextInRequest and GWEN_IpcManager_SendMultiRequest, it is not otherwise used by the IPC manager |
Adds a server to the IPC manager. The IPC manager will immediately enter listen mode on the given transport layer.
- Returns:
- node id of the node created (0 on error)
- Parameters:
-
Starts disconnecting the given client/server.
| GWENHYWFAR_API void GWEN_IpcManager_Dump |
( |
GWEN_IPCMANAGER * |
mgr, |
|
|
FILE * |
f, |
|
|
int |
indent | |
|
) |
| | |
| GWENHYWFAR_API const char* GWEN_IpcManager_GetApplicationName |
( |
const GWEN_IPCMANAGER * |
mgr |
) |
|
Returns the GWEN_DB of the incoming request with the given id. The IPC manager remains the owner of the DB returned.
The DB returned contains a special group called IPC, which in turn contains some interesting variables:
-
nodeId: Id of the node via which this request has been received
-
msgId: id of the message
- Parameters:
-
Returns a pointer to the connection used by the given node.
Returns the id of the next incoming request with the given mark. This request will then be taken of the list of new requests, so the next call to this function will return another request id (or 0 if there is none left). So you will have to preserve the id returned in order to use it.
- Parameters:
-
Returns the next response to the given outbound request. The data returned is taken off the list of responses, so any call to this function will return the next response (if any). The caller takes over ownership of the data returned.
- Parameters:
-
Returns the next response to the given outbound request. The data returned is not taken off the list of responses, so the next call to this function will return the same response (if any). The caller does NOT take over ownership of the data returned.
- Parameters:
-
Removes a client which was previously added using GWEN_IpcManager_AddClient. This function removes all pending messages and/or requests for/from this client.
Removes a request.
- Parameters:
-
Sends a request to any connection of the given mark.
- Returns:
- request id of the request created (0 on error)
- Parameters:
-
Sends a request via the given connection. It takes over the ownership of the given GWEN_DB in any case.
- Returns:
- request id of the request created (0 on error)
- Parameters:
-
Sends a response to a request received.
- Returns:
- 0 if ok, !=0 on error
- Parameters:
-
| mgr | pointer to the IPC manager object |
| rid | id of the request to which this is a response (as returned by GWEN_IpcManager_GetNextInRequest) |
| rsp | DB containing the response |
| GWENHYWFAR_API void GWEN_IpcManager_SetApplicationName |
( |
GWEN_IPCMANAGER * |
mgr, |
|
|
const char * |
name | |
|
) |
| | |
Lets the IPC manager do its work. You need to call GWEN_Net2_HeartBeat before this function to catch changes in the network connections used.