diff options
author | David Walter Seikel | 2016-01-03 00:06:41 +1000 |
---|---|---|
committer | David Walter Seikel | 2016-01-03 00:06:41 +1000 |
commit | d7bc357b2d1ec596e1b7fc982d0e299db3b4135c (patch) | |
tree | c429506e16efc4df624c12086c60cc47a2e9e069 /src/libraries/SledjHamr.h | |
parent | Rejig the build, test, and kill scripts a little bit. (diff) | |
download | SledjHamr-d7bc357b2d1ec596e1b7fc982d0e299db3b4135c.zip SledjHamr-d7bc357b2d1ec596e1b7fc982d0e299db3b4135c.tar.gz SledjHamr-d7bc357b2d1ec596e1b7fc982d0e299db3b4135c.tar.bz2 SledjHamr-d7bc357b2d1ec596e1b7fc982d0e299db3b4135c.tar.xz |
Beat the server connection manegement into shape.
Diffstat (limited to '')
-rw-r--r-- | src/libraries/SledjHamr.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/libraries/SledjHamr.h b/src/libraries/SledjHamr.h index 467fcc6..326e423 100644 --- a/src/libraries/SledjHamr.h +++ b/src/libraries/SledjHamr.h | |||
@@ -23,12 +23,22 @@ struct _ConnServer | |||
23 | Ecore_Con_Server *server; | 23 | Ecore_Con_Server *server; |
24 | char *serverCommand; | 24 | char *serverCommand; |
25 | int count, hackyCount; | 25 | int count, hackyCount; |
26 | // A list of connected remote clients. | ||
27 | // A NULL list means this is a remote server stored in a local clients Connection. | ||
28 | // An empty list means this is a local server, with no clients. | ||
29 | // An actual list means this is a local server, with connected remote clients. | ||
30 | Eina_Clist *clients; // HEAD element. | ||
31 | Ecore_Exe *serverHandle; // For running the server. | ||
32 | pid_t pid; | ||
26 | }; | 33 | }; |
27 | 34 | ||
28 | struct _ConnClient | 35 | struct _ConnClient |
29 | { | 36 | { |
30 | Ecore_Con_Client *client; | 37 | Ecore_Con_Client *client; |
38 | // If this is a local client, then myServer is a server Connection representing the remote server, and the server list entry element can be NULL. | ||
39 | // If this is a remote client, then myServer is NULL, and this Connection is stored in a list in the local server's Connection. | ||
31 | Connection *myServer; | 40 | Connection *myServer; |
41 | Eina_Clist *server; // Entry element. | ||
32 | }; | 42 | }; |
33 | 43 | ||
34 | struct _Connection | 44 | struct _Connection |
@@ -48,16 +58,19 @@ struct _Connection | |||
48 | // Callbacks. | 58 | // Callbacks. |
49 | void *pointer; | 59 | void *pointer; |
50 | Ecore_Event_Handler_Cb _add, _data, _del; | 60 | Ecore_Event_Handler_Cb _add, _data, _del; |
51 | Ecore_Event_Handler *add, *data, *del; | 61 | Ecore_Event_Handler *add, *data, *del, *died; |
52 | streamParser unknownCommand; | 62 | streamParser unknownCommand; |
63 | |||
64 | int stage; // Stage of creation for the Connection. | ||
53 | }; | 65 | }; |
54 | 66 | ||
55 | 67 | ||
56 | Ecore_Con_Server *reachOut(char *address, int port, void *data, Ecore_Event_Handler_Cb _add, Ecore_Event_Handler_Cb _data, Ecore_Event_Handler_Cb _del); | ||
57 | void *addMessage(Eina_Clist *list, size_t size, const char *message, ...); | 68 | void *addMessage(Eina_Clist *list, size_t size, const char *message, ...); |
58 | void sendBack(Ecore_Con_Client *client, const char *SID, const char *message, ...); | 69 | void sendBack(Connection *conn, const char *SID, const char *message, ...); |
59 | void sendForth(Ecore_Con_Server *server, const char *SID, const char *message, ...); | 70 | void sendForth(Connection *conn, const char *SID, const char *message, ...); |
60 | 71 | ||
72 | void send2(Connection *conn, const char *SID, const char *message, ...); | ||
61 | Connection *openArms(char *name, const char *address, int port, void *data, Ecore_Event_Handler_Cb _add, Ecore_Event_Handler_Cb _data, Ecore_Event_Handler_Cb _del, streamParser _parser); | 73 | Connection *openArms(char *name, const char *address, int port, void *data, Ecore_Event_Handler_Cb _add, Ecore_Event_Handler_Cb _data, Ecore_Event_Handler_Cb _del, streamParser _parser); |
74 | Connection *reachOut(char *name, char *command, char *address, int port, void *data, Ecore_Event_Handler_Cb _add, Ecore_Event_Handler_Cb _data, Ecore_Event_Handler_Cb _del, streamParser _parser); | ||
62 | 75 | ||
63 | #endif | 76 | #endif |