00001 /* 00002 ** AUTHORS: 00003 ** Rama Alebouyeh (rama[at]cs.ucsb.edu) 00004 ** Matthew S Allen (msa[at]cs.ucsb.edu) 00005 */ 00006 #ifndef _HOST_H_ 00007 #define _HOST_H_ 00008 00009 #include "key.h" 00010 00011 typedef struct { 00012 char *name; 00013 unsigned long address; 00014 int failed; 00015 double failuretime; 00016 int port; 00017 double latency; 00018 double loss; 00019 double success; 00020 Key key; 00021 } ChimeraHost; 00022 00023 typedef struct { 00024 void * network; 00025 void * message; 00026 void * route; 00027 void * log; 00028 void * host; 00029 void * chimera; 00030 } ChimeraState; 00031 00036 ChimeraHost *host_get(ChimeraState *state,char *hn, int port); 00037 00043 void host_release(ChimeraState *state,ChimeraHost *host); 00044 00049 ChimeraHost *host_decode(ChimeraState *state,char *s); 00050 00055 void host_encode(char *s, int len, ChimeraHost *host); 00056 00060 void* host_init(int size); 00061 00062 #endif /* _HOST_H_ */