3.21.1.2. Chimera Communication API

// Register a message type
void chimera_register (ChimeraState *state, int type, int ack);

// Create a key from a string
void key_makehash (void *log, Key *hashed, char *s);

// Send a message to host responsible for key
void chimera_send (ChimeraState *state, Key key, int type, int len, char *data);

// Upcall for message forward event
typedef void (*chimera_forward_upcall_t) (Key **key, Message **msg, ChimeraHost **host);
void chimera_forward (chimera_forward_upcall_t func);

// Upcall for message delivery event
typedef void (*chimera_deliver_upcall_t) (Key *key, Message *msg);
void chimera_deliver (chimera_deliver_upcall_t func);