This class manages the access of local Expression Corba Servants and Servers. More...
#include <rtt/corba/ExpressionServer.hpp>
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. |
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.
RTT::Corba::ExpressionServer::ExpressionServer | ( | ) | [protected] |
Private constructor.
Not used.
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.
expr | The expression to serve |
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.
expr | The expression to serve |
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.
expr | The expression to serve |