Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

postmaster Class Reference

#include <postmaster.h>

List of all members.

Public Member Functions

 postmaster (const char *host, unsigned short host_port, unsigned short serverport, int backlog=10)
 ~postmaster ()
void terminate_node ()
void terminate_system ()
void reg (const actorref &r, actor *a)
void reg (const syncref &s, synchronizer *s)
void reg (const syncref &s, globalsync *s)
void reg (const syncref &s, const actorref &a1, const actorref &a2)
void broadcast_action (const actorref &a, const method &m)
void sendmsg (const message &m)
void sendsyncmsg (const message &m)
void recvsyncmsg (const message &m)
void run (const actorref &a, const method &m, bool connect)
void run (bool connect)
void sm_notify_action (const syncref &s, const actorref &a, const method &m, const rttime_t &t)
message sm_request_msg (const syncref &s, const actorref &a)
void sm_ack_msg (const syncref &s, const message &m)
bool am_enabled (const actorref &a, const method &m)
void am_enable (const actorref &a, const method &m)
void am_disable (const actorref &a, const method &m)
rttime_t am_lastrun (const actorref &a, const method &m)
void am_register_msg (const actorref &a, syncref s, rttime_t priority)
void am_register_listener (const actorref &a, const syncref &s)
void update_local_run (const actorref &a, const method &m)
void reg_methods (const actorref &a, const std::list< method > &ml)
net_id get_nid ()

Private Types

typedef lock_map< actorref,
actor * > 
actormap
typedef lock_map< syncref,
actionlistener * > 
listenermap
typedef lock_map< syncref,
synchronizer * > 
syncmap
typedef lock_map< std::pair<
actorref, actorref >, syncref
sync_rel_map
typedef std::pair< actorref,
syncref
reg_pair
typedef boost::tuple< pthread_cond_t,
bool > 
block_param
typedef boost::tuple< pthread_cond_t,
bool, message
ret_param
typedef lock_map< actorref,
ret_param
recv_msg_map
typedef lock_map< actorref,
net_id
rem_actor_map
typedef lock_map< syncref,
net_id
rem_sync_map
typedef lock_map< std::pair<
actorref, method >, method_info
method_map
enum  message_type {
  RT_MESSAGE = 1, RT_NOTIF = 2, RT_REQUEST = 3, RT_REQRESPONSE = 4,
  RT_REGMSG = 5, RT_ENABLE = 6, RT_DISABLE = 7, RT_REG_LISTENER = 8,
  RT_ACKMSG = 9, RT_POST_ENABLE = 10, RT_POST_DISABLE = 11, RT_GET_NETIDS = 12,
  RT_POPULATE = 13, RT_POPULATION = 14, RT_TERMINATE = 15, RT_KILLALL = 16,
  RT_TIMEUPDATE = 17, RT_SYNCNOTE = 18
}

Private Member Functions

void net_recv ()
void populate (std::stringstream &ss, net_id n)
void send_population_data (net_id n)
void parse_data (const net_id &nid, rtsocket &sock)
void terminate (const net_id &nid)
void update_run (const actorref &a, const method &m, const rttime_t &t)

Private Attributes

pthread_t recv_thread
net_id m_id
std::string null_name
int server_socket
int awaiting_postmasters
lock_map< net_id, rtsocket * > postmasters
actormap actors
listenermap listeners
syncmap synchronizers
sync_rel_map sync_rel
globalsyncgsync
synchronizernullsync
lock_list< reg_pairreg_requests
lock_list< reg_pairlistener_cache
lock_list< boost::tuple< actorref,
syncref, rttime_t > > 
msg_reg_cache
lock_map< message::serial_no,
block_param
return_map
recv_msg_map recv_msgs
rem_actor_map rem_actors
rem_sync_map rem_syncs
method_map methods

Friends

bool operator< (const rem_actor_map::iterator &i1, const rem_actor_map::iterator &i2)
void * start_polling_func (postmaster *p)

Classes

struct  method_info


Member Typedef Documentation

typedef lock_map<actorref, actor*> postmaster::actormap [private]
 

typedef boost::tuple<pthread_cond_t, bool> postmaster::block_param [private]
 

typedef lock_map<syncref, actionlistener*> postmaster::listenermap [private]
 

typedef lock_map<std::pair<actorref, method>, method_info> postmaster::method_map [private]
 

typedef lock_map<actorref, ret_param> postmaster::recv_msg_map [private]
 

typedef std::pair<actorref, syncref> postmaster::reg_pair [private]
 

typedef lock_map<actorref,net_id> postmaster::rem_actor_map [private]
 

typedef lock_map<syncref, net_id> postmaster::rem_sync_map [private]
 

typedef boost::tuple<pthread_cond_t, bool, message> postmaster::ret_param [private]
 

typedef lock_map<std::pair<actorref, actorref>, syncref> postmaster::sync_rel_map [private]
 

typedef lock_map<syncref, synchronizer*> postmaster::syncmap [private]
 


Member Enumeration Documentation

enum postmaster::message_type [private]
 

Enumerator:
RT_MESSAGE 
RT_NOTIF 
RT_REQUEST 
RT_REQRESPONSE 
RT_REGMSG 
RT_ENABLE 
RT_DISABLE 
RT_REG_LISTENER 
RT_ACKMSG 
RT_POST_ENABLE 
RT_POST_DISABLE 
RT_GET_NETIDS 
RT_POPULATE 
RT_POPULATION 
RT_TERMINATE 
RT_KILLALL 
RT_TIMEUPDATE 
RT_SYNCNOTE 


Constructor & Destructor Documentation

postmaster::postmaster const char *  host,
unsigned short  host_port,
unsigned short  serverport,
int  backlog = 10
 

postmaster::~postmaster  ) 
 


Member Function Documentation

void postmaster::am_disable const actorref a,
const method m
 

void postmaster::am_enable const actorref a,
const method m
 

bool postmaster::am_enabled const actorref a,
const method m
 

rttime_t postmaster::am_lastrun const actorref a,
const method m
 

void postmaster::am_register_listener const actorref a,
const syncref s
 

void postmaster::am_register_msg const actorref a,
syncref  s,
rttime_t  priority
 

void postmaster::broadcast_action const actorref a,
const method m
 

net_id postmaster::get_nid  )  [inline]
 

void postmaster::net_recv  )  [private]
 

void postmaster::parse_data const net_id nid,
rtsocket sock
[private]
 

void postmaster::populate std::stringstream &  ss,
net_id  n
[private]
 

void postmaster::recvsyncmsg const message m  ) 
 

void postmaster::reg const syncref s,
const actorref a1,
const actorref a2
 

void postmaster::reg const syncref s,
globalsync s
 

void postmaster::reg const syncref s,
synchronizer s
 

void postmaster::reg const actorref r,
actor a
 

void postmaster::reg_methods const actorref a,
const std::list< method > &  ml
 

void postmaster::run bool  connect  ) 
 

void postmaster::run const actorref a,
const method m,
bool  connect
 

void postmaster::send_population_data net_id  n  )  [private]
 

void postmaster::sendmsg const message m  ) 
 

void postmaster::sendsyncmsg const message m  ) 
 

void postmaster::sm_ack_msg const syncref s,
const message m
 

void postmaster::sm_notify_action const syncref s,
const actorref a,
const method m,
const rttime_t t
 

message postmaster::sm_request_msg const syncref s,
const actorref a
 

void postmaster::terminate const net_id nid  )  [private]
 

void postmaster::terminate_node  ) 
 

void postmaster::terminate_system  ) 
 

void postmaster::update_local_run const actorref a,
const method m
 

void postmaster::update_run const actorref a,
const method m,
const rttime_t t
[private]
 


Friends And Related Function Documentation

bool operator< const rem_actor_map::iterator i1,
const rem_actor_map::iterator i2
[friend]
 

void* start_polling_func postmaster p  )  [friend]
 


Member Data Documentation

actormap postmaster::actors [private]
 

int postmaster::awaiting_postmasters [private]
 

globalsync* postmaster::gsync [private]
 

lock_list<reg_pair> postmaster::listener_cache [private]
 

listenermap postmaster::listeners [private]
 

net_id postmaster::m_id [private]
 

method_map postmaster::methods [private]
 

lock_list<boost::tuple<actorref, syncref, rttime_t> > postmaster::msg_reg_cache [private]
 

std::string postmaster::null_name [private]
 

synchronizer* postmaster::nullsync [private]
 

lock_map<net_id, rtsocket*> postmaster::postmasters [private]
 

recv_msg_map postmaster::recv_msgs [private]
 

pthread_t postmaster::recv_thread [private]
 

lock_list<reg_pair> postmaster::reg_requests [private]
 

rem_actor_map postmaster::rem_actors [private]
 

rem_sync_map postmaster::rem_syncs [private]
 

lock_map<message::serial_no, block_param> postmaster::return_map [private]
 

int postmaster::server_socket [private]
 

sync_rel_map postmaster::sync_rel [private]
 

syncmap postmaster::synchronizers [private]
 


The documentation for this class was generated from the following files:
Generated on Wed May 24 23:03:25 2006 for RTSync by  doxygen 1.4.4