#include <TaskContextServer.hpp>
Public Member Functions | |
CTaskContext_ptr | server () const |
CTaskContext_ptr | server () const |
~TaskContextServer () | |
~TaskContextServer () | |
Static Public Member Functions | |
static void | CleanupServer (TaskContext *tc) |
static void | CleanupServer (TaskContext *tc) |
static void | CleanupServers () |
static void | CleanupServers () |
static TaskContextServer * | Create (TaskContext *tc, bool use_naming=true, bool require_name_service=false) |
static TaskContextServer * | Create (TaskContext *tc, bool use_naming=true, bool require_name_service=false) |
static CTaskContext_ptr | CreateServer (TaskContext *tc, bool use_naming=true, bool require_name_service=false) |
static CTaskContext_ptr | CreateServer (TaskContext *tc, bool use_naming=true, bool require_name_service=false) |
static void | DestroyOrb () |
static void | DestroyOrb () |
static std::string | getIOR (TaskContext *tc) |
static std::string | getIOR (TaskContext *tc) |
static void | RunOrb () |
static void | RunOrb () |
static void | ShutdownOrb (bool wait_for_completion=true) |
static void | ShutdownOrb (bool wait_for_completion=true) |
static void | ThreadOrb () |
static void | ThreadOrb () |
Protected Types | |
typedef std::map< TaskContext *, std::string > | IorMap |
typedef std::map< TaskContext *, std::string > | IorMap |
typedef std::map< TaskContext *, TaskContextServer * > | ServerMap |
typedef std::map< TaskContext *, TaskContextServer * > | ServerMap |
Protected Member Functions | |
TaskContextServer (TaskContext *taskcontext, bool use_naming, bool require_name_service) | |
TaskContextServer (TaskContext *taskcontext, bool use_naming, bool require_name_service) | |
Static Protected Member Functions | |
static void | DoShutdownOrb (bool wait_for_completion=true) |
static void | DoShutdownOrb (bool wait_for_completion=true) |
Protected Attributes | |
PortableServer::POA_var | mpoa |
corba::CTaskContext_var | mtask |
PortableServer::ServantBase_var | mtask_i |
TaskContext * | mtaskcontext |
bool | muse_naming |
Static Protected Attributes | |
static IorMap | iors |
static bool | is_shutdown = false |
static base::ActivityInterface * | orbrunner = 0 |
static ServerMap | servers |
Friends | |
class | OrbRunner |
class | TaskContextProxy |
This class manages the creation of TaskContext Corba Servers and a Corba Object Request Broker (Orb) which executes the servers. The Orb may be run from the main thread or in its own thread.
Definition at line 65 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
typedef std::map<TaskContext*, std::string> RTT::corba::TaskContextServer::IorMap [protected] |
Definition at line 79 of file rtt/transports/corba/TaskContextServer.hpp.
typedef std::map<TaskContext*, std::string> RTT::corba::TaskContextServer::IorMap [protected] |
Definition at line 79 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
typedef std::map<TaskContext*, TaskContextServer*> RTT::corba::TaskContextServer::ServerMap [protected] |
Definition at line 72 of file rtt/transports/corba/TaskContextServer.hpp.
typedef std::map<TaskContext*, TaskContextServer*> RTT::corba::TaskContextServer::ServerMap [protected] |
Definition at line 72 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
RTT::corba::TaskContextServer::TaskContextServer | ( | TaskContext * | taskcontext, | |
bool | use_naming, | |||
bool | require_name_service | |||
) | [protected] |
Private constructor which creates a new servant.
Definition at line 118 of file TaskContextServer.cpp.
RTT::corba::TaskContextServer::~TaskContextServer | ( | ) |
When a TaskContextServer is destroyed, the object reference is removed from the Naming Service and the servant is deleted.
Definition at line 77 of file TaskContextServer.cpp.
RTT::corba::TaskContextServer::TaskContextServer | ( | TaskContext * | taskcontext, | |
bool | use_naming, | |||
bool | require_name_service | |||
) | [protected] |
Private constructor which creates a new servant.
RTT::corba::TaskContextServer::~TaskContextServer | ( | ) |
When a TaskContextServer is destroyed, the object reference is removed from the Naming Service and the servant is deleted.
static void RTT::corba::TaskContextServer::CleanupServer | ( | TaskContext * | tc | ) | [static] |
Deletes a TaskContext server for a given taskcontext. If no such server exists, this method silently does nothing.
void RTT::corba::TaskContextServer::CleanupServer | ( | TaskContext * | tc | ) | [static] |
Deletes a TaskContext server for a given taskcontext. If no such server exists, this method silently does nothing.
Definition at line 255 of file TaskContextServer.cpp.
static void RTT::corba::TaskContextServer::CleanupServers | ( | ) | [static] |
Destroys all TaskContextServer objects.
void RTT::corba::TaskContextServer::CleanupServers | ( | ) | [static] |
Destroys all TaskContextServer objects.
Definition at line 242 of file TaskContextServer.cpp.
static TaskContextServer* RTT::corba::TaskContextServer::Create | ( | TaskContext * | tc, | |
bool | use_naming = true , |
|||
bool | require_name_service = false | |||
) | [static] |
Factory method: create a CORBA server for an existing TaskContext.
tc | The TaskContext to serve. | |
use_naming | Set to false in order not to use the Corba Naming Service. | |
require_naming | Set to true to require that the Corba Naming Service be found. |
0 | if the ORB is not initialised, or if require_name_service==true and the name service was not found |
TaskContextServer * RTT::corba::TaskContextServer::Create | ( | TaskContext * | tc, | |
bool | use_naming = true , |
|||
bool | require_name_service = false | |||
) | [static] |
Factory method: create a CORBA server for an existing TaskContext.
tc | The TaskContext to serve. | |
use_naming | Set to false in order not to use the Corba Naming Service. | |
require_naming | Set to true to require that the Corba Naming Service be found. |
0 | if the ORB is not initialised, or if require_name_service==true and the name service was not found |
Definition at line 392 of file TaskContextServer.cpp.
static CTaskContext_ptr RTT::corba::TaskContextServer::CreateServer | ( | TaskContext * | tc, | |
bool | use_naming = true , |
|||
bool | require_name_service = false | |||
) | [static] |
Factory method: create a CORBA server for an existing TaskContext. Same as above, but immediately return the Corba object. Also checks if tc is TaskContextProxy and returns the server of the proxy if so.
tc | The TaskContext to serve. | |
use_naming | Set to false in order not to use the Corba Naming Service. | |
require_naming | Set to true to require that the Corba Naming Service be found. |
0 | if the ORB is not initialised, or if require_name_service==true and the name service was not found |
CTaskContext_ptr RTT::corba::TaskContextServer::CreateServer | ( | TaskContext * | tc, | |
bool | use_naming = true , |
|||
bool | require_name_service = false | |||
) | [static] |
Factory method: create a CORBA server for an existing TaskContext. Same as above, but immediately return the Corba object. Also checks if tc is TaskContextProxy and returns the server of the proxy if so.
tc | The TaskContext to serve. | |
use_naming | Set to false in order not to use the Corba Naming Service. | |
require_naming | Set to true to require that the Corba Naming Service be found. |
0 | if the ORB is not initialised, or if require_name_service==true and the name service was not found |
Definition at line 413 of file TaskContextServer.cpp.
static void RTT::corba::TaskContextServer::DestroyOrb | ( | ) | [static] |
Invoke this method once to cleanup the orb.
void RTT::corba::TaskContextServer::DestroyOrb | ( | ) | [static] |
Invoke this method once to cleanup the orb.
Definition at line 362 of file TaskContextServer.cpp.
static void RTT::corba::TaskContextServer::DoShutdownOrb | ( | bool | wait_for_completion = true |
) | [static, protected] |
Internal shutdown function, used by both thread and ShutdownOrb.
void RTT::corba::TaskContextServer::DoShutdownOrb | ( | bool | wait_for_completion = true |
) | [static, protected] |
Internal shutdown function, used by both thread and ShutdownOrb.
Definition at line 272 of file TaskContextServer.cpp.
static std::string RTT::corba::TaskContextServer::getIOR | ( | TaskContext * | tc | ) | [static] |
Get the IOR of a given TaskContext
tc | The TaskContext to find the IOR for |
std::string RTT::corba::TaskContextServer::getIOR | ( | TaskContext * | tc | ) | [static] |
Get the IOR of a given TaskContext
tc | The TaskContext to find the IOR for |
Definition at line 447 of file TaskContextServer.cpp.
static void RTT::corba::TaskContextServer::RunOrb | ( | ) | [static] |
Invoke this method to run the orb and accept client requests. Use ShutdownOrb() to break out of this method.
void RTT::corba::TaskContextServer::RunOrb | ( | ) | [static] |
Invoke this method to run the orb and accept client requests. Use ShutdownOrb() to break out of this method.
Definition at line 300 of file TaskContextServer.cpp.
CTaskContext_ptr RTT::corba::TaskContextServer::server | ( | ) | const |
Get the Corba Object of this TaskContext. If you want to store this reference, you must _duplicate it. This object universally identifies the remote TaskContextServer and can be used to tell other (remote) objects where to find it.
corba::CTaskContext_ptr RTT::corba::TaskContextServer::server | ( | ) | const |
Get the Corba Object of this TaskContext. If you want to store this reference, you must _duplicate it. This object universally identifies the remote TaskContextServer and can be used to tell other (remote) objects where to find it.
Definition at line 441 of file TaskContextServer.cpp.
static void RTT::corba::TaskContextServer::ShutdownOrb | ( | bool | wait_for_completion = true |
) | [static] |
void RTT::corba::TaskContextServer::ShutdownOrb | ( | bool | wait_for_completion = true |
) | [static] |
Invoke this method once to shutdown the Orb which is running the task servers in RunOrb(). When this function returns, no CORBA invocations are in progress, unless wait_for_completion is false.
Definition at line 266 of file TaskContextServer.cpp.
static void RTT::corba::TaskContextServer::ThreadOrb | ( | ) | [static] |
Invoke this method to run the orb in a separate thread and accept client requests from that thread. Use ShutdownOrb() to break out of this method.
void RTT::corba::TaskContextServer::ThreadOrb | ( | ) | [static] |
Invoke this method to run the orb in a separate thread and accept client requests from that thread. Use ShutdownOrb() to break out of this method.
Definition at line 345 of file TaskContextServer.cpp.
OrbRunner [friend] |
Definition at line 69 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
TaskContextProxy [friend] |
Definition at line 70 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
static IorMap RTT::corba::TaskContextServer::iors [static, protected] |
Definition at line 80 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
static bool RTT::corba::TaskContextServer::is_shutdown = false [static, protected] |
Definition at line 75 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
PortableServer::POA_var RTT::corba::TaskContextServer::mpoa [protected] |
Definition at line 77 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
Definition at line 88 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
PortableServer::ServantBase_var RTT::corba::TaskContextServer::mtask_i [protected] |
Definition at line 87 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
TaskContext * RTT::corba::TaskContextServer::mtaskcontext [protected] |
Definition at line 89 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
bool RTT::corba::TaskContextServer::muse_naming [protected] |
Definition at line 90 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
static base::ActivityInterface * RTT::corba::TaskContextServer::orbrunner = 0 [static, protected] |
Definition at line 74 of file install/include/rtt/transports/corba/TaskContextServer.hpp.
static ServerMap RTT::corba::TaskContextServer::servers [static, protected] |
Definition at line 73 of file install/include/rtt/transports/corba/TaskContextServer.hpp.