20 #ifndef RTC_CORBAPORT_H    21 #define RTC_CORBAPORT_H   733                           PortableServer::RefCountServantBase& provider);
  1073     class CorbaConsumerHolder;
  1104     virtual bool findProvider(
const NVList& nv, CorbaConsumerHolder& cons,
  1105                               std::string& iorstr);
  1141     virtual bool findProviderOld(
const NVList&nv, CorbaConsumerHolder& cons,
  1142                                  std::string& iorstr);
  1171     bool setObject(
const std::string& ior, CorbaConsumerHolder& cons);
  1199     bool releaseObject(
const std::string& ior, CorbaConsumerHolder& cons);
  1217     class CorbaProviderHolder
  1220       CorbaProviderHolder(
const char* type_name,
  1221                           const char* instance_name,
  1222                           PortableServer::RefCountServantBase* servant)
  1223         : m_typeName(type_name),
  1224           m_instanceName(instance_name),
  1228 #ifndef ORB_IS_RTORB  1229 #ifdef ORB_IS_OMNIORB  1231         m_poa->activate_object(m_servant);
  1235         m_oid = m_poa->servant_to_id(m_servant);
  1238             m_poa->activate_object_with_id(m_oid, m_servant);
  1244         CORBA::Object_var obj;
  1245         obj = m_poa->id_to_reference(m_oid);
  1247         CORBA::String_var ior_var = orb->object_to_string(obj);
  1250 #else // ORB_IS_RTORB  1254         m_oid = poa->servant_to_id(m_servant);
  1255         CORBA::Object_var obj;
  1256         obj = CORBA::Object_var(m_servant->__this());
  1258         CORBA::String_var ior_var = orb->object_to_string(obj);
  1260 #endif // ORB_IS_RTORB  1262       virtual ~CorbaProviderHolder()
  1266       std::string instanceName() { 
return m_instanceName; }
  1267       std::string typeName() { 
return m_typeName; }
  1268       std::string ior() { 
return m_ior; }
  1269       std::string descriptor() { 
return m_typeName + 
"." + m_instanceName; }
  1275             m_poa->activate_object_with_id(m_oid, m_servant);
  1277         catch(const ::PortableServer::POA::ServantAlreadyActive &)
  1290             m_poa->deactivate_object(m_oid);
  1298       std::string m_typeName;
  1299       std::string m_instanceName;
  1300       PortableServer::RefCountServantBase* m_servant;
  1301       PortableServer::ObjectId_var m_oid;
  1303       PortableServer::POA_var m_poa;
  1313     typedef std::vector<CorbaProviderHolder> CorbaProviderList;
  1314     CorbaProviderList m_providers;
  1323     class CorbaConsumerHolder
  1326       CorbaConsumerHolder(
const char* type_name,
  1327                           const char* instance_name,
  1329         : m_typeName(type_name),
  1330           m_instanceName(instance_name),
  1331           m_consumer(consumer),
  1335       std::string instanceName() { 
return m_instanceName; }
  1336       std::string typeName() { 
return m_typeName; }
  1337       std::string descriptor() { 
return m_typeName + 
"." + m_instanceName; }
  1339       bool setObject(
const char* ior)
  1343         CORBA::Object_var obj = orb->string_to_object(ior);
  1344         if (CORBA::is_nil(obj))
  1349         return m_consumer->setObject(obj.in());
  1351       void releaseObject()
  1353         m_consumer->releaseObject();
  1355       const std::string& getIor()
  1360       std::string m_typeName;
  1361       std::string m_instanceName;
  1365     typedef std::vector<CorbaConsumerHolder> CorbaConsumerList;
  1366     CorbaConsumerList m_consumers;
  1378       unsubscribe(CorbaConsumerList& consumers)
  1379         : m_consumers(consumers)
  1383       void operator()(
const SDOPackage::NameValue& nv)
  1385         for (CorbaConsumerList::iterator it(m_consumers.begin());
  1386              it != m_consumers.end(); ++it)
  1388             std::string name(nv.name);
  1389             if (it->descriptor() == (
const char*)nv.name)
  1391                 it->releaseObject();
  1395       CorbaConsumerList& m_consumers;
  1399 #endif // RTC_CORBAPORT_H RTC's Port base class. 
 
coil::Properties m_properties
Properties. 
Definition: CorbaPort.h:1070
 
RT Conponent CORBA service/consumer Port. 
Definition: CorbaPort.h:620
 
CorbaPort(const char *name)
Constructor. 
 
Definition: CorbaConsumer.h:94
 
PortableServer::POA_ptr getPOA()
Get a pointer to RootPOA held by Manager. 
 
RTC::ReturnCode_t activate(RTC::RTObject_ptr rtc, RTC::UniqueId ec_id=0)
 
void init(coil::Properties &prop)
Initializing properties. 
 
virtual void activateInterfaces()
Activate all Port interfaces. 
 
CORBA::ORB_ptr getORB()
Get the pointer to ORB (ownership duplicated) 
 
virtual void unsubscribeInterfaces(const ConnectorProfile &connector_profile)
Unsubscribe interfaces. 
 
Port base class. 
Definition: PortBase.h:135
 
virtual ~CorbaPort(void)
Virtual destructor. 
 
NameValue and NVList utility functions. 
 
RTC::ReturnCode_t deactivate(RTC::RTObject_ptr rtc, RTC::UniqueId ec_id=0)
 
virtual ReturnCode_t subscribeInterfaces(const ConnectorProfile &connector_profile)
Subscribe to interface. 
 
Class represents a set of properties. 
Definition: Properties.h:101
 
virtual ReturnCode_t publishInterfaces(ConnectorProfile &connector_profile)
Publish information about interfaces. 
 
bool registerConsumer(const char *instance_name, const char *type_name, CorbaConsumerBase &consumer)
Register the consumer. 
 
bool registerProvider(const char *instance_name, const char *type_name, PortableServer::RefCountServantBase &provider)
Register the provider. 
 
static Manager & instance()
Get instance of the manager. 
 
virtual void deactivateInterfaces()
Deactivate all Port interfaces.