Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages | Examples

ColCOWS::NodeServant Class Reference

#include <ColCOWS_NodeServant.hh>

Collaboration diagram for ColCOWS::NodeServant:

Collaboration graph
[legend]
List of all members.

Detailed Description

ColCOWS node interface implementation.

The NodeServant is the implementation of the NodeInterface defined in the IDL. This class is in charge of the operations between the nodes of a workspace as well as the operations between workspaces.

Definition at line 67 of file ColCOWS_NodeServant.hh.

Public Member Functions

 NodeServant ()
 constructor
virtual ~NodeServant ()
 destructor
virtual void printself (std::ostream &stream) const
 print self
void lockChildrenMutex ()
 lock children mutex
void unlockChildrenMutex ()
 unlock children mutex
void lockActivationMutex ()
 lock activation mutex
void unlockActivationMutex ()
 unlock activation mutex
virtual void setWorkspace (const IdlWorkspaceDesc &ws_desc)
 set the workspace description [public]
virtual void setChildNode (const IdlNodeDesc &node_desc) throw (CorbaException)
 set a node description
virtual CORBA::Boolean isActivated () throw (CorbaException)
 test if the collective node is activated
virtual CORBA::Boolean isReady () throw (CorbaException)
 test if the workspace is ready to receive connections [public]
virtual CORBA::Boolean isConnected (CORBA::ULong num_connection) throw (CorbaException)
 test if the connection exists
virtual CORBA::ULong getNumConnection (const char *ws_id, const char *ws_kind) throw (CorbaException)
 test if the collective node id is connected
virtual void getCommonNumConnection (CORBA::ULong &num_connection_proposal) throw (CorbaException)
 get a unige connection number
virtual void getNode (CORBA::ULong num_node, IdlNodeDesc_out node_desc) throw (CorbaException)
 get a node description
virtual void getWorkspace (IdlWorkspaceDesc_out ws_desc) throw (CorbaException)
 get the workspace description [public]
virtual void getRemoteWorkspace (CORBA::ULong num_connection, IdlWorkspaceDesc_out ws_desc) throw (CorbaException)
 get the remote workspace description [public]
virtual void setRemoteWorkspace (CORBA::ULong num_connection, const IdlWorkspaceDesc &ws_desc, CORBA::Boolean connection_initiator)
 set the remote workspace description [public]
virtual void releaseRemoteWorkspace (CORBA::ULong num_connection)
 set the remote workspace description [public]

Static Public Member Functions

static NodeServantNew (const char *ws_id, const char *ws_kind, const char *node_kind, unsigned long num_node, unsigned long max_descendant, unsigned long nb_nodes, unsigned long num_father, CORBA::ORB_ptr orbp)

Protected Member Functions

void activate ()
 activate this node
void deactivate ()
 deactivate this node
unsigned long connect (const std::string &ws_id, const std::string &ws_kind, const std::string &nameservice_str)
 connect a remote workspace identified with an ID and a Kind on another NameService
void disconnect (unsigned long num_connection)
 disconnect a remote workspace
void disconnectAll ()
 disconnect a remote workspace
bool registerToFather (unsigned long max_retry=0)
 register this node to his father

Protected Attributes

IdlNodeDesc_var _my_node
 Description of this Workspace Node.
IdlNodeDesc_var _father_node
 Description of the father Workspace Node.
IdlNodeDescSeq_var _children_nodes
IdlWorkspaceDesc_var _local_workspace
 Description of the local Workspace.
IdlWorkspaceDescSeq_var _remote_workspaces
 Description of the connected Workspaces.
CORBA::ORB_ptr _orbp
 Pointer on the ORB.
CosNaming::NamingContext_var _naming_ctxt
PortableServer::POA_var _root_poa
 POA.
PortableServer::POA_var _colcows_poa
 POA.
PortableServer::POAManager_var _colcows_pman
 POA manager.
bool _ready
 ready to receive connections
bool _auto_activation
 need auto-activation
bool _registred_to_father
 is registred to father
unsigned long _current_num_connection
 next number of connection
pthread_mutex_t _children_mut
 access to children desc mutex
pthread_mutex_t _activation_mut
 activation mutex
pthread_cond_t _activation_cond
 activation condition variable
Node_colcows_node
 associated Node

Private Member Functions

long indexConnection (CORBA::ULong num_connection)
 get the storage index of the connection

Friends

class Node
std::ostream & operator<< (std::ostream &stream, const NodeServant &_this)
 standard output stream operator


Member Function Documentation

CORBA::Boolean ColCOWS::NodeServant::isReady  )  throw (CorbaException) [virtual]
 

test if the workspace is ready to receive connections [public]

Todo:
return _ready insteed ...

Definition at line 787 of file ColCOWS_NodeServant.cc.

References _local_workspace.

Referenced by connect().


Member Data Documentation

IdlNodeDescSeq_var ColCOWS::NodeServant::_children_nodes [protected]
 

Descriptions of the children Workspace Nodes

Bug:
suppress _children_nodes and use directly _my_node->children_seq

Definition at line 197 of file ColCOWS_NodeServant.hh.

Referenced by activate(), deactivate(), NodeServant(), releaseRemoteWorkspace(), setChildNode(), setRemoteWorkspace(), and setWorkspace().


The documentation for this class was generated from the following files:
Generated on Tue Jun 21 12:56:03 2005 for ColCOWS by  doxygen 1.4.1