RTT::Corba::ExpressionServer Class Reference

This class manages the access of local Expression Corba Servants and Servers. More...

#include <rtt/corba/ExpressionServer.hpp>

List of all members.

Static Public Member Functions

static Corba::Expression_ptr CreateExpression (DataSourceBase::shared_ptr expr, PortableServer::POA_ptr p)
 Factory method: create a CORBA server to an expression.
static Corba::Expression_ptr CreateAssignableExpression (DataSourceBase::shared_ptr expr, PortableServer::POA_ptr p)
 Factory method: create a CORBA server to an assignable expression.
static Corba::Method_ptr CreateMethod (DataSourceBase::shared_ptr expr, MethodC *orig, PortableServer::POA_ptr p)
 Factory method: create a CORBA server to a method.
static void copy (std::map< const DataSourceBase *, DataSourceBase * > &alreadyCloned)
 This method informs the servants that a new DataSource needs to be used because of a copy operation.
static void CleanupExpressions ()
 Removes all cached Expression servers.

Protected Types

typedef std::map
< DataSourceBase::const_ptr,
Orocos_AnyExpression_i * > 
EServantMap
typedef std::map
< DataSourceBase::const_ptr,
Corba::Expression_var > 
EServerMap
typedef std::map
< DataSourceBase::shared_ptr,
Corba::AssignableExpression_var > 
AServerMap
typedef std::map
< DataSourceBase::shared_ptr,
Corba::Method_var > 
MServerMap

Protected Member Functions

 ExpressionServer ()
 Private constructor.

Static Protected Attributes

static EServantMap EServants
 All created servants end up in this map.
static std::vector
< PortableServer::ServantBase_var > 
EServantRefs
static EServerMap EServers
 All created Expressions (or subclasses) end up in this map.
static AServerMap AServers
 The AssignableExpressions end up in this map as well.
static MServerMap MServers
 The Methods end up in this map as well.

Detailed Description

This class manages the access of local Expression Corba Servants and Servers.

Especially, it also takes care of the copy/clone semantics and informs the servants when a DataSource copy() operation changed the location of a DataSource it was using.

Definition at line 66 of file ExpressionServer.hpp.


Constructor & Destructor Documentation

RTT::Corba::ExpressionServer::ExpressionServer (  )  [protected]

Private constructor.

Not used.


Member Function Documentation

static void RTT::Corba::ExpressionServer::CleanupExpressions (  )  [static]

Removes all cached Expression servers.

Any future client call to such a server will result in a CORBA exception.

static void RTT::Corba::ExpressionServer::copy ( std::map< const DataSourceBase *, DataSourceBase * > &  alreadyCloned  )  [static]

This method informs the servants that a new DataSource needs to be used because of a copy operation.

It also updates the internal maps such that each new lookup will resolve to the new DataSource instead of the old. The old DataSource becomes 'unserved' and may thus become available for clean-up.

static Corba::Expression_ptr RTT::Corba::ExpressionServer::CreateAssignableExpression ( DataSourceBase::shared_ptr  expr,
PortableServer::POA_ptr  p 
) [static]

Factory method: create a CORBA server to an assignable expression.

Parameters:
expr The expression to serve
Returns:
A new or previously created CORBA server for expr.
static Corba::Expression_ptr RTT::Corba::ExpressionServer::CreateExpression ( DataSourceBase::shared_ptr  expr,
PortableServer::POA_ptr  p 
) [static]

Factory method: create a CORBA server to an expression.

Parameters:
expr The expression to serve
Returns:
A new or previously created CORBA server for expr.
static Corba::Method_ptr RTT::Corba::ExpressionServer::CreateMethod ( DataSourceBase::shared_ptr  expr,
MethodC orig,
PortableServer::POA_ptr  p 
) [static]

Factory method: create a CORBA server to a method.

Parameters:
expr The expression to serve
Returns:
A new or previously created CORBA server for expr.

The documentation for this class was generated from the following file:
Generated on Thu Dec 23 13:22:45 2010 for Orocos Real-Time Toolkit by  doxygen 1.6.3