#include "e_iovec.h"
#include "ce_so.h"
#include <memory.h>
Go to the source code of this file.
Compounds | |
struct | ce_jops_t |
struct | ce_local_state_t |
struct | ce_view_id_t |
struct | ce_view_state_t |
Defines | |
#define | __CE_H__ |
#define | CE_DEFAULT_PROTOCOL "Top:Heal:Switch:Leave:Inter:Intra:Elect:Merge:Slander:Sync:Suspect:Stable:Vsync:Frag_Abv:Top_appl:Frag:Pt2ptw:Mflow:Pt2pt:Mnak:Bottom" |
#define | CE_DEFAULT_PROPERTIES "Gmp:Sync:Heal:Switch:Frag:Suspect:Flow:Slander" |
#define | record_create(type, var) ((type)malloc(sizeof(*var))) |
#define | record_free(rec) free(rec) |
#define | record_clear(rec) memset(rec, 0, sizeof(*rec)) |
Typedefs | |
typedef double | ce_float_t |
typedef int | ce_bool_t |
typedef int | ce_rank_t |
typedef int | ce_ltime_t |
typedef int | ce_len_t |
typedef void* | ce_env_t |
typedef double | ce_time_t |
typedef char* | ce_endpt_t |
typedef char* | ce_addr_t |
typedef char* | ce_data_t |
typedef ce_iovec_t* | ce_iovec_array_t |
typedef ce_bool_t* | ce_bool_array_t |
typedef ce_endpt_t* | ce_endpt_array_t |
typedef ce_rank_t* | ce_rank_array_t |
typedef ce_addr_t* | ce_addr_array_t |
typedef struct ce_view_id_t | ce_view_id_t |
typedef ce_view_id_t** | ce_view_id_array_t |
typedef struct ce_view_state_t | ce_view_state_t |
typedef struct ce_local_state_t | ce_local_state_t |
typedef struct ce_jops_t | ce_jops_t |
typedef void (* | ce_appl_install_t )(ce_env_t, ce_local_state_t *, ce_view_state_t *) |
typedef void (* | ce_appl_exit_t )(ce_env_t) |
typedef void (* | ce_appl_receive_cast_t )(ce_env_t, ce_rank_t, int, ce_iovec_array_t) |
typedef void (* | ce_appl_receive_send_t )(ce_env_t, ce_rank_t, int, ce_iovec_array_t) |
typedef void (* | ce_appl_flow_block_t )(ce_env_t, ce_rank_t, ce_bool_t) |
typedef void (* | ce_appl_block_t )(ce_env_t) |
typedef void (* | ce_appl_heartbeat_t )(ce_env_t, ce_time_t) |
typedef struct ce_appl_intf_t | ce_appl_intf_t |
typedef int | CE_SOCKET |
typedef void (* | ce_handler_t )(void *) |
typedef void (* | ce_appl_flat_receive_cast_t )(ce_env_t, ce_rank_t, ce_len_t, ce_data_t) |
typedef void (* | ce_appl_flat_receive_send_t )(ce_env_t, ce_rank_t, ce_len_t, ce_data_t) |
Functions | |
LINKDLL char* | ce_copy_string (char *str) |
LINKDLL void | ce_view_full_free (ce_local_state_t *ls, ce_view_state_t *vs) |
LINKDLL void | ce_jops_free (ce_jops_t *) |
LINKDLL ce_appl_intf_t* | ce_create_intf (ce_env_t env, ce_appl_exit_t exit, ce_appl_install_t install, ce_appl_flow_block_t flow_block, ce_appl_block_t block, ce_appl_receive_cast_t cast, ce_appl_receive_send_t send, ce_appl_heartbeat_t heartbeat) |
LINKDLL void | ce_Init (int argc, char **argv) |
LINKDLL void | ce_Main_loop (void) |
LINKDLL void | ce_Join (ce_jops_t *ops, ce_appl_intf_t *c_appl) |
LINKDLL void | ce_Leave (ce_appl_intf_t *c_appl) |
LINKDLL void | ce_Cast (ce_appl_intf_t *c_appl, int num, ce_iovec_array_t iovl) |
LINKDLL void | ce_Send (ce_appl_intf_t *c_appl, int num_dests, ce_rank_array_t dests, int num, ce_iovec_array_t iovl) |
LINKDLL void | ce_Send1 (ce_appl_intf_t *c_appl, ce_rank_t dest, int num, ce_iovec_array_t iovl) |
LINKDLL void | ce_Prompt (ce_appl_intf_t *c_appl) |
LINKDLL void | ce_Suspect (ce_appl_intf_t *c_appl, int num, ce_rank_array_t suspects) |
LINKDLL void | ce_XferDone (ce_appl_intf_t *c_appl) |
LINKDLL void | ce_Rekey (ce_appl_intf_t *c_appl) |
LINKDLL void | ce_ChangeProtocol (ce_appl_intf_t *c_appl, char *protocol_name) |
LINKDLL void | ce_ChangeProperties (ce_appl_intf_t *c_appl, char *properties) |
LINKDLL void | ce_MLPrintOverride (void(*handler)(char *msg)) |
LINKDLL void | ce_MLUncaughtException (void(*handler)(char *info)) |
LINKDLL void | ce_AddSockRecv (CE_SOCKET socket, ce_handler_t handler, ce_env_t env) |
LINKDLL void | ce_RmvSockRecv (CE_SOCKET socket) |
LINKDLL ce_appl_intf_t* | ce_create_flat_intf (ce_env_t env, ce_appl_exit_t exit, ce_appl_install_t install, ce_appl_flow_block_t flow_block, ce_appl_block_t block, ce_appl_flat_receive_cast_t cast, ce_appl_flat_receive_send_t send, ce_appl_heartbeat_t heartbeat) |
LINKDLL void | ce_flat_Cast (ce_appl_intf_t *c_appl, ce_len_t len, ce_data_t buf) |
LINKDLL void | ce_flat_Send (ce_appl_intf_t *c_appl, int num_dests, ce_rank_array_t dests, ce_len_t len, ce_data_t buf) |
LINKDLL void | ce_flat_Send1 (ce_appl_intf_t *c_appl, ce_rank_t dest, ce_len_t len, ce_data_t buf) |
|
The default set of properties. A stack built with these properties will provide relibale sender-ordered multicast and point-to-point communication, as well as virtual synchrony. |
|
The default set of layers. |
|
Value: |
|
Clear a record. |
|
Create a record. |
|
Free a record. |
|
CE_Socket allows an os-independent representation for sockets. |
|
Arrays of addresses. A null terminated array containing pointers to addresses. |
|
The type of addresses. |
|
Block is called whenever a view change is forthcoming. All applications are blocked, the old view is stabilized, cleaned, and way is made for the new view. |
|
Exit is called when the member leaves. |
|
FlatReceiveCast is called whenever a mulicast message arrives. The received message is NOT owned by the application, it can only be used for read-only operations. It can be assumed to exists for the duration of the callback. |
|
FlatReceiveSend is called whenever a point-to-point message arrives. The received message is NOT owned by the application, it can only be used for read-only operations. It can be assumed to exists for the duration of the callback. |
|
FlowBlock is called whenever there are flow-control problems, and the application should refrain from sending messages until further notice. |
|
Heartbeat is called every timeout. The timeout is specified in the jops structure. |
|
Install is called whenever a new view is installed. Fresh local and view_states are handed to the application, they are hence owned by the application. |
|
The type of application interface. This is created by the constructor ce_create_intf. There is no need for a destructor because Ensemble frees the interface-structure and all related memory once the Exit callback is called. An application interface is an opaque handle which allows using Ensemble stacks. |
|
ReceiveCast is called whenever a mulicast message arrives. The iovec array is not owned by the application and should be freed. It can be used for read-only operations, and cannot be assumed to exist after the callback returns. |
|
ReceiveSend is called whenever a point-to-point message arrives. The iovec array is not owned by the application and should be freed. It can be used for read-only operations, and cannot be assumed to exist after the callback returns. |
|
|
|
The type of boolean values. |
|
The type of data. |
|
Arrays of endpoints, these are null terminated arrays of pointers to ce_endpt_t. |
|
The type of endpoint names. This name does not change throughout an endpoint's life. |
|
The type of application environments. An application can set its envrionmet for a specific C-interface, each callback on that C-interface will use this variable. |
|
The type of floats used here. Should be the same as an ML float. |
|
A handler called when there is input to process on a socket. |
|
An Io-vector array. ce_iovec_t is defined in mm.h. |
|
A request structure that describes the list of properties an application wishes from a created endpoint. |
|
The type of message length, an integer. |
|
The local state describes the group-state pertaining to the local member. |
|
The type of logical time. Used in defining view id's. |
|
Arrays of ranks. |
|
The type of member ranks, an integer. Each group member is ranked between 0 and (nmembers-1), this allows a very simple addressing scheme. |
|
The type of time. |
|
A null terminated array of pointers view_ids. |
|
The view_id structure describes the logical view id. The basic Ensemble supported abstraction is a group, where members can join and leave dynamically. Each membership change is also called a view change, because it changes the composition of the group. Each view has a view_id which is composed of the group leader, and the logical time. A view_id is unique, and there is a partial order on view_id's. |
|
The view_state describes the current state of the group, it includes the Ensemble version number, the group name, the rank of the coordinator, and more. |
|
This call adds a socket to the list Ensemble listens to. When input on the socket occurs, this handler will be invoked on the specified environment variable.
|
|
Send a multicast message to the group.
|
|
Request a protocol change (specify properties).
|
|
Request a protocol change.
|
|
Initialize the Ensemble data structures, and process the command line arguments. The command line arguments are: 1) Those accepted by Ensemble 2) -outboard <mode> In case we're using outboard, which, mode to use: a) FORK: Unix, fork an Ensemble process b) SPAWN: WIN32, spawn an Ensemble process c) TCP: connect to an existing Ensemble daemon through TCP. |
|
Join a group.
|
|
Leave a group. After this downcall, the context becomes invalid.
|
|
Allows overriding the default ML value printer. For the power-user. |
|
Allows overriding the default ML exception handler. For the power-user. |
|
Transfer control to Ensemble, and start the main loop. |
|
Ask for a new View.
|
|
Ask the system to rekey.
|
|
Remove a socket from the list Ensemble listens to.
|
|
Send a point-to-point message to a set of group members.
|
|
Send a point-to-point message to the specified group member.
|
|
Report specified group members as failure-suspected.
|
|
Inform Ensemble that the state-transfer is complete.
|
|
copy a C string.
|
|
Create an application interface using flat callbacks. |
|
A constructor for application interfaces.
|
|
Send a multicast message to the group.
|
|
Send a point-to-point message to a set of group members.
|
|
Send a point-to-point message to the specified group member.
|
|
Free a jops structure.
|
|
Free a local-state and a view-state.
|