eq::net Namespace Reference

Equalizer network layer. More...


Classes

class  Barrier
 A networked, versioned barrier. More...
class  BufferConnection
 A proxy connection buffering outgoing data into a memory region. More...
class  Command
 A class managing commands and the ownership of packets. More...
class  CommandCache
 A command cache handles the reuse of allocated packets for a node. More...
class  CommandFunc
 A wrapper to register a function callback on an object instance. More...
class  CommandQueue
 A CommandQueue is a thread-safe queue for command packets. More...
class  Connection
 An interface definition for communication between hosts. More...
class  ConnectionDescription
 Describes Connection parameters. More...
class  ConnectionListener
 A listener interface to connection changes. More...
class  ConnectionSet
 A set of connections. More...
class  DataIStream
 A std::istream-like input data stream for binary data. More...
class  DataOStream
 A std::ostream buffering and/or retaining data in a binary format. More...
class  DeltaMasterCM
 An object change manager handling full versions and deltas for the master instance. More...
class  Dispatcher
 A helper class providing command packet dispatch functionality to networked objects. More...
class  FDConnection
 A generic file descriptor-based connection, to be subclassed. More...
class  FullMasterCM
 An object change manager handling only full versions for the master instance. More...
class  FullSlaveCM
 An object change manager handling full instance versions for slave instances. More...
class  Global
 Global parameter handling for the Equalizer network implementation. More...
class  NamedPipeConnection
 A . More...
class  Node
 Manages a node. More...
class  NullCM
 The NOP object change manager for unmapped objects. More...
class  Object
 A generic, distributed object. More...
class  ObjectCM
 The object change manager base class. More...
class  ObjectDataIStream
 The DataIStream for object data. More...
class  ObjectDataOStream
 The DataOStream for object data. More...
class  ObjectDeltaDataIStream
 The DataIStream for object delta version data. More...
class  ObjectDeltaDataOStream
 The DataOStream for object delta version data. More...
class  ObjectInstanceDataIStream
 The DataIStream for object instance data. More...
class  ObjectInstanceDataOStream
 The DataOStream for object instance data. More...
struct  ObjectVersion
 A helper struct bundling an object identifier and version. More...
struct  Packet
 Represents a packet. More...
struct  NodePacket
struct  SessionPacket
struct  ObjectPacket
class  PairConnection
 A meta connection consisting of two (unidirectional) connections providing bidirectional communication. More...
class  PipeConnection
 A uni-directional pipe connection. More...
class  Session
 Provides higher-level functionality to a set of nodes. More...
class  SocketConnection
 A socket connection (TCPIP or SDP). More...
class  StaticMasterCM
 An object change manager handling a static master instance. More...
class  StaticSlaveCM
 An object change manager handling static object slave instances. More...
class  UnbufferedMasterCM
 An object change manager handling versioned objects without any buffering. More...

Typedefs

typedef CommandFunc< FullMasterCMCmdFunc
typedef base::UUID NodeID
 A unique identifier for nodes.
typedef base::RefPtr< NodeNodePtr
 A reference pointer for Node pointers.
typedef base::RefPtr< ConnectionConnectionPtr
 A reference pointer for Connection pointers.
typedef base::RefPtr
< ConnectionDescription
ConnectionDescriptionPtr
 A reference pointer for ConnectionDescription pointers.
typedef std::vector< NodePtrNodeVector
 A vector of NodePtr's.
typedef std::vector< Object * > ObjectVector
 A vector of Objects.
typedef std::vector< Barrier * > BarrierVector
 A vector of Barriers.
typedef std::vector
< ConnectionPtr
ConnectionVector
 A vector of ConnectionPtr's.
typedef std::vector
< ConnectionDescriptionPtr
ConnectionDescriptionVector
 A vector of ConnectionDescriptionPtr's.

Enumerations

enum  CommandResult { COMMAND_HANDLED, COMMAND_DISCARD, COMMAND_ERROR }
enum  NodeCommand {
  CMD_NODE_STOP, CMD_NODE_MESSAGE, CMD_NODE_REGISTER_SESSION, CMD_NODE_REGISTER_SESSION_REPLY,
  CMD_NODE_MAP_SESSION, CMD_NODE_MAP_SESSION_REPLY, CMD_NODE_UNMAP_SESSION, CMD_NODE_UNMAP_SESSION_REPLY,
  CMD_NODE_SESSION, CMD_NODE_CONNECT, CMD_NODE_CONNECT_REPLY, CMD_NODE_DISCONNECT,
  CMD_NODE_GET_NODE_DATA, CMD_NODE_GET_NODE_DATA_REPLY, CMD_NODE_ACQUIRE_SEND_TOKEN, CMD_NODE_ACQUIRE_SEND_TOKEN_REPLY,
  CMD_NODE_RELEASE_SEND_TOKEN, CMD_NODE_FILL1, CMD_NODE_FILL2, CMD_NODE_FILL3,
  CMD_NODE_FILL4, CMD_NODE_FILL5, CMD_NODE_CUSTOM
}
enum  SessionCommand {
  CMD_SESSION_ACK_REQUEST, CMD_SESSION_GEN_IDS, CMD_SESSION_GEN_IDS_REPLY, CMD_SESSION_SET_ID_MASTER,
  CMD_SESSION_GET_ID_MASTER, CMD_SESSION_GET_ID_MASTER_REPLY, CMD_SESSION_ATTACH_OBJECT, CMD_SESSION_DETACH_OBJECT,
  CMD_SESSION_MAP_OBJECT, CMD_SESSION_SUBSCRIBE_OBJECT, CMD_SESSION_SUBSCRIBE_OBJECT_SUCCESS, CMD_SESSION_SUBSCRIBE_OBJECT_REPLY,
  CMD_SESSION_UNSUBSCRIBE_OBJECT, CMD_SESSION_GET_OBJECT, CMD_SESSION_FILL1, CMD_SESSION_FILL2,
  CMD_SESSION_FILL3, CMD_SESSION_FILL4, CMD_SESSION_FILL5, CMD_SESSION_CUSTOM
}
enum  ObjectCommand {
  CMD_OBJECT_INSTANCE_DATA, CMD_OBJECT_INSTANCE, CMD_OBJECT_DELTA_DATA, CMD_OBJECT_DELTA,
  CMD_OBJECT_COMMIT, CMD_OBJECT_NEW_MASTER, CMD_OBJECT_VERSION, CMD_OBJECT_FILL1,
  CMD_OBJECT_FILL2, CMD_OBJECT_FILL3, CMD_OBJECT_FILL4, CMD_OBJECT_FILL5,
  CMD_OBJECT_CUSTOM
}
enum  BarrierCommand {
  CMD_BARRIER_ENTER = CMD_OBJECT_CUSTOM, CMD_BARRIER_ENTER_REPLY, CMD_BARRIER_FILL1, CMD_BARRIER_FILL2,
  CMD_BARRIER_FILL3, CMD_BARRIER_FILL4, CMD_BARRIER_FILL5, CMD_BARRIER_ALL
}
enum  ConnectionType { CONNECTIONTYPE_TCPIP, CONNECTIONTYPE_SDP, CONNECTIONTYPE_PIPE, CONNECTIONTYPE_NAMEDPIPE }
 The supported network protocols. More...
enum  LogTopics {
  LOG_OBJECTS = base::LOG_CUSTOM << 0, LOG_BARRIER = base::LOG_CUSTOM << 1, LOG_FILL1 = base::LOG_CUSTOM << 2, LOG_FILL2 = base::LOG_CUSTOM << 3,
  LOG_CUSTOM = base::LOG_CUSTOM << 4
}
enum  NodeType { TYPE_EQNET_INVALID, TYPE_EQNET_NODE, TYPE_EQNET_USER = 0x100 }
 Node types to identify connecting nodes. More...
enum  { DATATYPE_EQNET_NODE, DATATYPE_EQNET_SESSION, DATATYPE_EQNET_OBJECT, DATATYPE_EQNET_CUSTOM = 1<<7 }

Functions

std::ostream & operator<< (std::ostream &os, const Command &command)
std::ostream & operator<< (std::ostream &os, const CommandResult &result)
std::ostream & operator<< (std::ostream &os, const Connection *connection)
std::ostream & operator<< (std::ostream &os, const ConnectionDescription *desc)
std::ostream & operator<< (std::ostream &os, const ConnectionSet *set)
std::ostream & operator<< (std::ostream &os, const ConnectionSet::Event event)
std::ostream & operator<< (std::ostream &os, const FDConnection *connection)
bool init (const int argc, char **argv)
 Initialize the Equalizer network classes.
bool exit ()
 De-initialize the Equalizer network classes.
std::ostream & operator<< (std::ostream &os, const Node::State state)
std::ostream & operator<< (std::ostream &os, const Node *node)
std::ostream & operator<< (std::ostream &os, const NodeType &type)
std::ostream & operator<< (std::ostream &os, const ObjectVersion &ov)
std::ostream & operator<< (std::ostream &os, const Packet *packet)
std::ostream & operator<< (std::ostream &os, const NodePacket *packet)
std::ostream & operator<< (std::ostream &os, const NodeMapSessionPacket *packet)
std::ostream & operator<< (std::ostream &os, const NodeMapSessionReplyPacket *packet)
std::ostream & operator<< (std::ostream &os, const NodeConnectPacket *packet)
std::ostream & operator<< (std::ostream &os, const NodeConnectReplyPacket *packet)
std::ostream & operator<< (std::ostream &os, const NodeGetNodeDataPacket *packet)
std::ostream & operator<< (std::ostream &os, const NodeGetNodeDataReplyPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionGenIDsReplyPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionGetIDMasterPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionGetIDMasterReplyPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionMapObjectPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectInstanceDataPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectInstancePacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectDeltaDataPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectDeltaPacket *packet)
std::ostream & operator<< (std::ostream &os, const BarrierEnterPacket *packet)
std::ostream & operator<< (std::ostream &os, Session *session)


Detailed Description

Equalizer network layer.

The Equalizer network layer provides basic functionality for network communication, such as Connection and ConnectionSet, as well as higher-level functionality such as Node, Session and Object.


Typedef Documentation

A unique identifier for nodes.

Definition at line 39 of file lib/net/types.h.

A reference pointer for Node pointers.

Definition at line 45 of file lib/net/types.h.

A reference pointer for Connection pointers.

Definition at line 47 of file lib/net/types.h.

A reference pointer for ConnectionDescription pointers.

Definition at line 49 of file lib/net/types.h.

typedef std::vector< NodePtr > eq::net::NodeVector

A vector of NodePtr's.

Definition at line 52 of file lib/net/types.h.

typedef std::vector< Object* > eq::net::ObjectVector

A vector of Objects.

Definition at line 54 of file lib/net/types.h.

typedef std::vector< Barrier* > eq::net::BarrierVector

A vector of Barriers.

Definition at line 56 of file lib/net/types.h.

typedef std::vector< ConnectionPtr > eq::net::ConnectionVector

A vector of ConnectionPtr's.

Definition at line 58 of file lib/net/types.h.

A vector of ConnectionDescriptionPtr's.

Definition at line 60 of file lib/net/types.h.


Enumeration Type Documentation

Enumerator:
COMMAND_HANDLED  The command was handled.
COMMAND_DISCARD  Discard command, used by Objects.
COMMAND_ERROR  An unrecoverable error occured.

Definition at line 28 of file commandResult.h.

The supported network protocols.

Enumerator:
CONNECTIONTYPE_TCPIP  TCP/IP sockets.
CONNECTIONTYPE_SDP  SDP sockets (InfiniBand).
CONNECTIONTYPE_PIPE  pipe() based uni-directional connection
CONNECTIONTYPE_NAMEDPIPE  Named pipe based bidirectional connection.

Definition at line 26 of file connectionType.h.

Node types to identify connecting nodes.

Enumerator:
TYPE_EQNET_INVALID  Invalid type.
TYPE_EQNET_NODE  A plain eq::net::Node.
TYPE_EQNET_USER  Application-specific types.

Definition at line 28 of file net/nodeType.h.


Function Documentation

bool eq::net::init ( const int  argc,
char **  argv 
)

Initialize the Equalizer network classes.

Parameters:
argc the command line argument count.
argv the command line argument values.
Returns:
true if the library was successfully initialised, false otherwise.

Definition at line 41 of file net/init.cpp.

References EQERROR, EQINFO, eq::base::Log::getLogLevelString(), eq::net::Global::getProgramName(), eq::net::Global::getWorkDir(), eq::base::init(), eq::net::Global::setProgramName(), eq::net::Global::setWorkDir(), and eq::base::Log::topics.

Referenced by eq::init().

Here is the call graph for this function:

Here is the caller graph for this function:

bool eq::net::exit (  ) 

De-initialize the Equalizer network classes.

De-initialize the Equalizer base classes.

Returns:
true if the library was successfully de-initialised, false otherwise.

Definition at line 73 of file net/init.cpp.

References EQERROR.

Referenced by eq::exit(), and eq::net::Node::initLocal().

Here is the caller graph for this function:

Generated on Mon Aug 10 18:58:44 2009 for Equalizer 0.9 by  doxygen 1.5.8