Main Page   File List   File Members   Related Pages  

frdi_client.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 #ifndef _FRDI_CLIENT_H
00020 #define _FRDI_CLIENT_H
00021 
00022 #include "../shared/frdi.h"
00023 
00024 
00025 #define FRDI_CLIENT_GAME_STAGE_UNSET            -1
00026 #define FRDI_CLIENT_GAME_STAGE_OPENING           1
00027 #define FRDI_CLIENT_GAME_STAGE_INIT              2
00028 #define FRDI_CLIENT_GAME_STAGE_RAND              3
00029 #define FRDI_CLIENT_GAME_STAGE_GENR              4
00030 #define FRDI_CLIENT_GAME_STAGE_VERI              5
00031 #define FRDI_CLIENT_GAME_STAGE_CLOSING           6
00032 
00033 
00034 struct frdi__client_app
00035 {
00036         frdi_config *config;
00037         frdi_dict *user_connections; // maps connection -> user
00038         frdi_listener *user_listener;
00039         frdi_dict *server_connections;
00040         frdi_dict *link_to_server; // maps link_id -> server_obj
00041         frdi_log *log;
00042         frdi_app *self;
00043 };
00044 
00045 typedef struct frdi__client_app frdi_client_app;
00046 
00047 
00048 struct frdi__client_user
00049 {
00050         frdi_connection *connection;
00051         frdi_dict *servers; // maps server id to server object
00052         frdi_dict *tmp;
00053         char *description;
00054 };
00055 
00056 typedef struct frdi__client_user frdi_client_user;
00057 
00058 
00059 struct frdi__client_server
00060 {
00061         frdi_connection *connection;
00062         frdi_client_user *user;
00063         frdi_dict *games; // maps char *game_id to frdi_client_game *
00064         char *description;
00065 };
00066 
00067 typedef struct frdi__client_server frdi_client_server;
00068 
00069 
00070 struct frdi__client_game
00071 {
00072         int stage;
00073         frdi_client_server *server;
00074         frdi_client_user *user;
00075         char *game_id;
00076         char *user_id;
00077         int user_num;
00078         int size;
00079         frdi_game_modulo *modulo;
00080         frdi_game_output *output;
00081         frdi_game_input *input;
00082         frdi_game_usertext *usertext;
00083         frdi_game_plaintext *plaintext;
00084         frdi_game_digest *digest;
00085         frdi_game_properties *properties;
00086         frdi_game_sharedtext *seed;
00087         frdi_dict *digests; // maps user_id to frdi_game_digest
00088         frdi_dict *usertexts; // maps user_id to frdi_game_usertext
00089 };
00090 
00091 typedef struct frdi__client_game frdi_client_game;
00092 
00093 
00094 
00095 // ########################################
00096 //
00097 //    frdi_client_app.c
00098 //
00099 // ########################################
00100 
00103 frdi_client_app *frdiClientAppNew(frdi_app *app);
00104 
00107 int frdiClientAppRun(frdi_client_app *self);
00108 
00111 void frdiClientAppFree(frdi_client_app *self);
00112 
00115 char *frdiClientAppDisplay(frdi_client_app *self);
00116 
00119 void frdiClientPV(frdi_client_app *self, char *str);
00120 
00123 void frdiClientPVF(frdi_client_app *self, char *format, void *arg);
00124 
00125 
00126 // ########################################
00127 //
00128 //    frdi_client_connections.c
00129 //
00130 // ########################################
00131 
00134 frdi_connection *frdiClientServerConnectionNew(
00135                 frdi_client_app *self,
00136                 frdi_application *remote);
00137 
00140 void *frdiClientServerConnectionRecieve(void *arg);
00141 
00144 void *frdiClientUserConnectionRecieve(void *arg);
00145 
00148 void frdiClientConnectionClose(frdi_connection *connection);
00149 
00152 void *frdiClientUserListenerSpawner(void *arg);
00153 
00156 void frdiClientUserListenerWaitStop(frdi_client_app *self);
00157 
00160 void frdiClientUserListenerTellStop(frdi_client_app *self);
00161 
00164 void frdiClientUserListenerTellStart(frdi_client_app *self);
00165 
00166 
00167 // ########################################
00168 //
00169 //    frdi_client_storage.c
00170 //
00171 // ########################################
00172 
00175 frdi_client_user *frdiClientUserInitialise(
00176     frdi_client_app *self,
00177     frdi_connection *connection);
00178 
00181 void frdiClientUserFinalise(
00182     frdi_client_app *self,
00183     frdi_client_user *user);
00184 
00187 void frdiClientUserRecieve(
00188     frdi_client_app *self,
00189     frdi_connection *connection,
00190     frdi_message *message);
00191 
00194 void frdiClientUserMessageSend(
00195     frdi_client_app *self,
00196     frdi_client_user *user,
00197     frdi_message *message);
00198 
00201 char *frdiClientUserDisplay(frdi_client_app *self, frdi_client_user *user);
00202 
00205 frdi_client_server *frdiClientServerInitialise(
00206     frdi_client_app *self,
00207     frdi_connection *connection);
00208 
00211 void frdiClientServerFinalise(
00212     frdi_client_app *self,
00213     frdi_client_server *server);
00214 
00217 void frdiClientServerMessageSend(
00218     frdi_client_app *self,
00219     frdi_client_server *server,
00220     frdi_message *message);
00221 
00224 void frdiClientServerRecieve(
00225     frdi_client_app *self,
00226     frdi_connection *connection,
00227     frdi_message *message);
00228 
00231 char *frdiClientServerDisplay(frdi_client_app *self, frdi_client_server *server);
00232 
00233 
00234 // ########################################
00235 //
00236 //    frdi_client_messages.c
00237 //
00238 // ########################################
00239 
00242 void frdiClientUserMessageRecieve(
00243     frdi_client_app *self,
00244     frdi_client_user *user,
00245     frdi_message *message);
00246 
00249 void frdiClientServerMessageRecieve(
00250     frdi_client_app *self,
00251     frdi_client_user *user,
00252     frdi_client_server *server,
00253     frdi_message *message);
00254 
00257 void frdiClientUserMsU(
00258     frdi_client_app *self,
00259     frdi_client_user *user,
00260     frdi_message *old_message);
00261 
00264 void frdiClientServerMsU(
00265     frdi_client_app *self,
00266     frdi_client_server *server,
00267     frdi_message *old_message);
00268 
00271 void frdiClientTellServerStop(frdi_client_app *self, frdi_client_server *server);
00272 
00275 void frdiClientTellUserStop(frdi_client_app *self, frdi_client_user *user);
00276 
00279 void frdiClientTellAllStop(frdi_client_app *self);
00280 
00281 // ########################################
00282 //
00283 //    frdi_client_smr.c   (server message receive)
00284 //
00285 // ########################################
00286 
00287 
00290 void frdiClientGameSendServer(
00291     frdi_client_app *self,
00292     frdi_client_game *game,
00293     char *str);
00294     
00295 
00298 void frdiClientServerMrD(
00299     frdi_client_app *self,
00300     frdi_client_user *user,
00301     frdi_client_server *server,
00302     frdi_message *message);
00303 
00306 void frdiClientServerMrG(
00307     frdi_client_app *self,
00308     frdi_client_user *user,
00309     frdi_client_server *server,
00310     frdi_message *message);
00311 
00314 void frdiClientServerMrK(
00315     frdi_client_app *self,
00316     frdi_client_user *user,
00317     frdi_client_server *server,
00318     frdi_message *message);
00319 
00322 void frdiClientServerMrL(
00323     frdi_client_app *self,
00324     frdi_client_user *user,
00325     frdi_client_server *server,
00326     frdi_message *message);
00327 
00330 void frdiClientServerMrM(
00331     frdi_client_app *self,
00332     frdi_client_user *user,
00333     frdi_client_server *server,
00334     frdi_message *message);
00335 
00338 void frdiClientServerMrR(
00339     frdi_client_app *self,
00340     frdi_client_user *user,
00341     frdi_client_server *server,
00342     frdi_message *message);
00343 
00346 void frdiClientServerMrU(
00347     frdi_client_app *self,
00348     frdi_client_user *user,
00349     frdi_client_server *server,
00350     frdi_message *message);
00351 
00354 void frdiClientServerMrV(
00355     frdi_client_app *self,
00356     frdi_client_user *user,
00357     frdi_client_server *server,
00358     frdi_message *message);
00359 
00362 void frdiClientServerMrE(
00363     frdi_client_app *self,
00364     frdi_client_user *user,
00365     frdi_client_server *server,
00366     frdi_message *message,
00367     char c);
00368 
00369 
00370 // ########################################
00371 //
00372 //    frdi_client_umr.c   (user message receive)
00373 //
00374 // ########################################
00375 
00378 void frdiClientGameSendUser(
00379     frdi_client_app *self,
00380     frdi_client_game *game,
00381     char *str);
00382 
00385 void frdiClientUserMrD(
00386     frdi_client_app *self,
00387     frdi_client_user *user,
00388     frdi_message *message);
00389 
00392 void frdiClientUserMrF(
00393     frdi_client_app *self,
00394     frdi_client_user *user,
00395     frdi_message *message);
00396 
00399 void frdiClientUserMrG(
00400     frdi_client_app *self,
00401     frdi_client_user *user,
00402     frdi_message *message);
00403 
00406 void frdiClientUserMrK(
00407     frdi_client_app *self,
00408     frdi_client_user *user,
00409     frdi_message *message);
00410 
00413 void frdiClientUserMrL(
00414     frdi_client_app *self,
00415     frdi_client_user *user,
00416     frdi_message *message);
00417 
00420 void frdiClientUserMrR(
00421     frdi_client_app *self,
00422     frdi_client_user *user,
00423     frdi_message *message);
00424 
00427 void frdiClientUserMrU(
00428     frdi_client_app *self,
00429     frdi_client_user *user,
00430     frdi_message *message);
00431 
00434 void frdiClientUserMrE(
00435     frdi_client_app *self,
00436     frdi_client_user *user,
00437     frdi_message *message,
00438     char c);
00439 
00440 // ########################################
00441 //
00442 //    frdi_client_link.c
00443 //
00444 // ########################################
00445 
00448 void frdiClientEncryptionMode(
00449     frdi_client_app *self,
00450     frdi_client_user *user,
00451     frdi_client_server *server,
00452     char *str);
00453 
00456 void frdiClientAuthenticationMode(
00457     frdi_client_app *self,
00458     frdi_client_user *user,
00459     frdi_client_server *server,
00460     char *str);
00461 
00464 void frdiClientAuthenticationTypePass(
00465     frdi_client_app *self,
00466     frdi_client_user *user,
00467     frdi_client_server *server,
00468     char *str);
00469 
00472 void frdiClientAuthenticationType(
00473     frdi_client_app *self,
00474     frdi_client_user *user,
00475     frdi_client_server *server,
00476     char *str);
00477 
00480 void frdiClientEncodingMode(
00481     frdi_client_app *self,
00482     frdi_client_user *user,
00483     frdi_client_server *server,
00484     char *str);
00485     
00486 
00487 // ########################################
00488 //
00489 //    frdi_client_game.c
00490 //
00491 // ########################################
00492 
00495 void frdiClientGameReceiveServer(frdi_client_app *self, frdi_client_game *game, char *str);
00496 
00499 void frdiClientGameRevealUsertext(frdi_client_app *self, frdi_client_game *game);
00500 
00503 void frdiClientGameReceiveUser(frdi_client_app *self, frdi_client_game *game, char *str);
00504 
00507 frdi_client_game *frdiClientGameNew(frdi_client_app *self, char *game_id);
00508 
00511 void frdiClientGameLog(frdi_client_app *self, frdi_client_game *game, char *str);
00512 
00515 void frdiClientGameFinish(frdi_client_app *self, frdi_client_game *game);
00516 
00519 char *frdiClientGameDescribe(frdi_client_app *self, frdi_client_game *game);
00520 
00523 void frdiClientGameRegisterDigest(frdi_client_app *self, frdi_client_game *game, char *response);
00524 
00527 void frdiClientGameVerifyDigest(frdi_client_app *self, frdi_client_game *game, char *response);
00528 
00531 int frdiClientGameIsAllowed(frdi_client_app *self, frdi_client_game *game, char *prefix);
00532 
00535 int frdiClientGameCountUsertexts(frdi_client_app *self, frdi_client_game *game);
00536 
00539 int frdiClientGameCountDigests(frdi_client_app *self, frdi_client_game *game);
00540 
00543 void frdiClientGameVerifyOutput(frdi_client_app *self, frdi_client_game *game);
00544 
00547 char *frdiClientGameReport(frdi_client_app *self, frdi_client_game *game);
00548 
00549 // ignore me \todo remove the need for this
00550 frdi_client_server *frdiClientGetServerForUser(
00551                 frdi_client_app *self,
00552                 frdi_client_user *user);
00553 
00556 frdi_client_server *frdiClientGetServerForLink(
00557                 frdi_client_app *self,
00558                 frdi_client_user *user,
00559                 char *link_id);
00560 
00561 #endif /* _FRDI_CLIENT_H */
00562 
00563 /* End of File */

Generated on Wed Aug 18 13:23:43 2004 for Project Fairdice by doxygen1.2.18