$search

industrial::message_manager::MessageManager Class Reference

The message manager handles communications for a simple server. More...

#include <message_manager.h>

List of all members.

Public Member Functions

bool add (industrial::message_handler::MessageHandler *handler)
 Adds a message handler to the manager.
unsigned int getMaxNumHandlers ()
 Gets maximumn number of handlers.
unsigned int getNumHandlers ()
 Gets number of handlers.
bool init (industrial::smpl_msg_connection::SmplMsgConnection *connection, industrial::comms_fault_handler::CommsFaultHandler *fault_handler)
 Class initializer.
bool init (industrial::smpl_msg_connection::SmplMsgConnection *connection)
 Class initializer.
 MessageManager ()
 Constructor.
void spin ()
 Perform a indefinite execution of the message manager.
void spinOnce ()
 Perform an single execution of the message manager (a single receive and send (if required).
 ~MessageManager ()
 Destructor.

Private Member Functions

industrial::comms_fault_handler::CommsFaultHandlergetCommsFaultHandler ()
 Gets communications fault handler.
industrial::smpl_msg_connection::SmplMsgConnectiongetConnection ()
 Gets connection for manager.
industrial::simple_comms_fault_handler::SimpleCommsFaultHandlergetDefaultCommsFaultHandler ()
 Gets default communications fault handler.
industrial::message_handler::MessageHandlergetHandler (int msg_type)
 Gets message handler for specific message type.
industrial::ping_handler::PingHandlergetPingHandler ()
 Gets ping handler.
void setCommsFaultHandler (industrial::comms_fault_handler::CommsFaultHandler *handler)
 Gets communications fault handler.
void setConnection (industrial::smpl_msg_connection::SmplMsgConnection *connection)
 Sets connection manager.
void setNumHandlers (unsigned int num_handlers)
 Sets message type that callback expects.

Private Attributes

industrial::comms_fault_handler::CommsFaultHandlercomms_hndlr_
 Reference to comms handler.
industrial::smpl_msg_connection::SmplMsgConnectionconnection_
 Reference to reply connection (called if incoming message requires a reply).
industrial::simple_comms_fault_handler::SimpleCommsFaultHandler def_comms_hndlr_
 Internal default comms handler (this is used if a communications fault handler is not specified as part of the class init.
industrial::message_handler::MessageHandlerhandlers_ [MAX_NUM_HANDLERS]
 buffer of handlers
unsigned int num_handlers_
 Number of handlers.
industrial::ping_handler::PingHandler ping_hndlr_
 Internal ping handle (by default every message manager can handle pings).

Static Private Attributes

static const unsigned int MAX_NUM_HANDLERS = 64
 Maximum number of handlers.

Detailed Description

The message manager handles communications for a simple server.

The message manager receives simple messages via it's communications connection. It then performs function callbacks based on the message type. Callbacks perform the desired operation and send a reply, if required.

The message manager can be run in two ways. spin(), similar to ROS this executes a blocking execution indefinitely or spinOnce(), where a single execution of the manager is performed. In spinOnce mode, other server operations can be made, but the server application must make certain to execute the spinOnce() function at a minimum rate so as not to loose connection data.

THIS CLASS IS NOT THREAD-SAFE

Definition at line 80 of file message_manager.h.


Constructor & Destructor Documentation

industrial::message_manager::MessageManager::MessageManager (  ) 

Constructor.

Definition at line 58 of file message_manager.cpp.

industrial::message_manager::MessageManager::~MessageManager (  ) 

Destructor.

Definition at line 68 of file message_manager.cpp.


Member Function Documentation

bool industrial::message_manager::MessageManager::add ( industrial::message_handler::MessageHandler handler  ) 

Adds a message handler to the manager.

Parameters:
handler handler to add
Returns:
true if successful, otherwise false (max number of handlers reached or handler for message type already exists).

Definition at line 177 of file message_manager.cpp.

industrial::comms_fault_handler::CommsFaultHandler* industrial::message_manager::MessageManager::getCommsFaultHandler (  )  [inline, private]

Gets communications fault handler.

Returns:
reference to message handler or NULL if one doesn't exist

Definition at line 219 of file message_manager.h.

industrial::smpl_msg_connection::SmplMsgConnection* industrial::message_manager::MessageManager::getConnection (  )  [inline, private]

Gets connection for manager.

Returns:
connection reference

Definition at line 270 of file message_manager.h.

industrial::simple_comms_fault_handler::SimpleCommsFaultHandler& industrial::message_manager::MessageManager::getDefaultCommsFaultHandler (  )  [inline, private]

Gets default communications fault handler.

Returns:
reference to message handler or NULL if one doesn't exist

Definition at line 239 of file message_manager.h.

MessageHandler * industrial::message_manager::MessageManager::getHandler ( int  msg_type  )  [private]

Gets message handler for specific message type.

Parameters:
msg_type message type to handle
Returns:
reference to message handler or NULL if one doesn't exist

Definition at line 215 of file message_manager.cpp.

unsigned int industrial::message_manager::MessageManager::getMaxNumHandlers (  )  [inline]

Gets maximumn number of handlers.

Returns:
connection reference

Definition at line 158 of file message_manager.h.

unsigned int industrial::message_manager::MessageManager::getNumHandlers (  )  [inline]

Gets number of handlers.

Returns:
connection reference

Definition at line 147 of file message_manager.h.

industrial::ping_handler::PingHandler& industrial::message_manager::MessageManager::getPingHandler (  )  [inline, private]

Gets ping handler.

Returns:
connection reference

Definition at line 248 of file message_manager.h.

bool industrial::message_manager::MessageManager::init ( industrial::smpl_msg_connection::SmplMsgConnection connection,
industrial::comms_fault_handler::CommsFaultHandler fault_handler 
)

Class initializer.

Parameters:
simple message connection that will be managed. This connection must be properly initialized and connected before it is passed to the manager.
connection fault handler to be used in case of a connection fault.
Returns:
true on success, false otherwise

Definition at line 95 of file message_manager.cpp.

bool industrial::message_manager::MessageManager::init ( industrial::smpl_msg_connection::SmplMsgConnection connection  ) 

Class initializer.

Parameters:
connection simple message connection that will be managed. This connection must be properly initialized and connected before it is passed to the manager.
Returns:
true on success, false otherwise

Definition at line 73 of file message_manager.cpp.

void industrial::message_manager::MessageManager::setCommsFaultHandler ( industrial::comms_fault_handler::CommsFaultHandler handler  )  [inline, private]

Gets communications fault handler.

Parameters:
Pointer to message handler

Definition at line 229 of file message_manager.h.

void industrial::message_manager::MessageManager::setConnection ( industrial::smpl_msg_connection::SmplMsgConnection connection  )  [inline, private]

Sets connection manager.

Parameters:
connection connection reference

Definition at line 259 of file message_manager.h.

void industrial::message_manager::MessageManager::setNumHandlers ( unsigned int  num_handlers  )  [inline, private]

Sets message type that callback expects.

Parameters:
msg_type message type

Definition at line 281 of file message_manager.h.

void industrial::message_manager::MessageManager::spin (  ) 

Perform a indefinite execution of the message manager.

Definition at line 168 of file message_manager.cpp.

void industrial::message_manager::MessageManager::spinOnce (  ) 

Perform an single execution of the message manager (a single receive and send (if required).

Definition at line 129 of file message_manager.cpp.


Member Data Documentation

Reference to comms handler.

Definition at line 198 of file message_manager.h.

Reference to reply connection (called if incoming message requires a reply).

Definition at line 182 of file message_manager.h.

Internal default comms handler (this is used if a communications fault handler is not specified as part of the class init.

Definition at line 193 of file message_manager.h.

buffer of handlers

Definition at line 177 of file message_manager.h.

const unsigned int industrial::message_manager::MessageManager::MAX_NUM_HANDLERS = 64 [static, private]

Maximum number of handlers.

The number of handlers is limited in order to avoid dynamic memory allocation on robot controllers.

Definition at line 172 of file message_manager.h.

Number of handlers.

Definition at line 203 of file message_manager.h.

Internal ping handle (by default every message manager can handle pings).

Definition at line 187 of file message_manager.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends


simple_message
Author(s): Shaun Edwards
autogenerated on Mon Mar 4 11:36:30 2013