chimera.h

Go to the documentation of this file.
00001 /*
00002 ** AUTHORS:
00003 ** Rama Alebouyeh (rama[at]cs.ucsb.edu)
00004 ** Matthew S Allen (msa[at]cs.ucsb.edu)
00005 */
00006 
00007 #ifndef _CHIMERA_H_
00008 #define _CHIMERA_H_
00009 
00010 #include "host.h"
00011 #include "key.h"
00012 #include "log.h"
00013 #include <pthread.h>
00014 #include "message.h"
00015 
00016 typedef void (*chimera_forward_upcall_t)(Key **, Message **, ChimeraHost **);
00017 typedef void (*chimera_deliver_upcall_t)(Key *, Message *);
00018 typedef void (*chimera_update_upcall_t)(Key *, ChimeraHost *, int);
00019 
00025 ChimeraState *chimera_init(int port);
00026 
00031 void chimera_join(ChimeraState *state,ChimeraHost *bootstrap);
00032 
00038 void chimera_route(ChimeraState *state, Key *key, Message *msg, ChimeraHost *hint);
00039 
00046 void chimera_forward(ChimeraState *state, chimera_forward_upcall_t func);
00047 
00053 void chimera_deliver(ChimeraState *state,chimera_deliver_upcall_t func);
00054 
00060 void chimera_update(ChimeraState *state,chimera_update_upcall_t func);
00061 
00065 void chimera_setkey(ChimeraState *state,Key key);
00066 
00070 void chimera_register(ChimeraState *state, int type);
00071 
00077 void chimera_send(ChimeraState *state, Key key, int type, int len, char *data);
00078  
00083 int chimera_ping(ChimeraState *state,ChimeraHost *host);
00084 
00085 #endif /* _CHIMERA_H_ */
00086 

Generated on Sat Nov 12 16:43:13 2005 for Chimera by  doxygen 1.4.5