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 command 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  EventConnection
 A connection signalling an event. 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  Global
 Global parameter handling for the Equalizer network implementation. More...
class  InstanceCache
 A thread-safe cache for object instance data. More...
class  MCIPConnection
 A facade for hiding different IP-based reliable multicast implementations. 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  RSPConnection
 A rsp connection (Attn: only multicast usage implemented). 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  UDPConnection
 A udp connection (Attn: only multicast usage implemented). More...
class  UnbufferedMasterCM
 An object change manager handling versioned objects without any buffering. More...
class  VersionedSlaveCM
 An object change manager handling changes for versioned slave instances. More...

Typedefs

typedef ObjectDeltaDataOStream DeltaData
typedef CommandFunc
< DeltaMasterCM
CmdFunc
typedef CommandFunc< NodeNodeFunc
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_CONNECT_ACK,
  CMD_NODE_ID, 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_UNMAP_OBJECT, CMD_SESSION_SUBSCRIBE_OBJECT, CMD_SESSION_SUBSCRIBE_OBJECT_SUCCESS,
  CMD_SESSION_SUBSCRIBE_OBJECT_REPLY, CMD_SESSION_UNSUBSCRIBE_OBJECT, CMD_SESSION_INSTANCE, CMD_SESSION_FILL1,
  CMD_SESSION_FILL2, CMD_SESSION_FILL3, CMD_SESSION_FILL4, CMD_SESSION_FILL5,
  CMD_SESSION_CUSTOM
}
enum  ObjectCommand {
  CMD_OBJECT_INSTANCE, 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_NONE = 0, CONNECTIONTYPE_TCPIP, CONNECTIONTYPE_SDP, CONNECTIONTYPE_PIPE,
  CONNECTIONTYPE_NAMEDPIPE, CONNECTIONTYPE_IB, CONNECTIONTYPE_UDP, CONNECTIONTYPE_MULTICAST = 0x100,
  CONNECTIONTYPE_MCIP = CONNECTIONTYPE_MULTICAST, CONNECTIONTYPE_PGM, CONNECTIONTYPE_RSP
}
 

The supported network protocols.

More...
enum  LogTopics {
  LOG_OBJECTS = base::LOG_CUSTOM << 0, LOG_BARRIER = base::LOG_CUSTOM << 1, LOG_RSP = base::LOG_CUSTOM << 2, LOG_FILL1 = 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 }
enum  Version { VERSION_NONE = 0, VERSION_INVALID = 0xfffffffeu, VERSION_OLDEST = VERSION_INVALID, VERSION_HEAD = 0xffffffffu }
 

Special object version enums.


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 ConnectionType &type)
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 InstanceCache &instanceCache)
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 SessionSubscribeObjectPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionSubscribeObjectSuccessPacket *packet)
std::ostream & operator<< (std::ostream &os, const SessionSubscribeObjectReplyPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectDataPacket *packet)
std::ostream & operator<< (std::ostream &os, const ObjectInstancePacket *packet)
std::ostream & operator<< (std::ostream &os, const BarrierEnterPacket *packet)
std::ostream & operator<< (std::ostream &os, const RSPConnection &connection)
std::ostream & operator<< (std::ostream &os, Session *session)

Variables

ObjectVersion NONE

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 41 of file lib/net/types.h.

A reference pointer for Node pointers.

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

A reference pointer for Connection pointers.

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

A reference pointer for ConnectionDescription pointers.

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

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

A vector of NodePtr's.

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

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

A vector of Objects.

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

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

A vector of Barriers.

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

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

A vector of ConnectionPtr's.

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

A vector of ConnectionDescriptionPtr's.

Definition at line 62 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.

CONNECTIONTYPE_IB 

Infiniband based RDMA.

CONNECTIONTYPE_UDP 

Unreliable UDP connection.

CONNECTIONTYPE_MCIP 

IP-based multicast.

CONNECTIONTYPE_PGM 

IP-based multicast connection (PGM).

CONNECTIONTYPE_RSP 

UDP-based reliable stream protocol.

Definition at line 29 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.
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.

Referenced by eq::net::Node::initLocal().

Here is the caller graph for this function:

Generated on Sat Feb 6 13:08:33 2010 for Equalizer 0.9.1 by  doxygen 1.6.1