OpenRTM-aist
2.1.0
Toggle main menu visibility
読み取り中…
検索中…
一致する文字列を見つけられません
PortAdmin.h
[詳解]
1
// -*- C++ -*-
19
20
#ifndef RTC_PORTADMIN_H
21
#define RTC_PORTADMIN_H
22
23
#include <rtm/idl/RTCSkel.h>
24
#include <
rtm/PortBase.h
>
25
#include <
rtm/ObjectManager.h
>
26
#include <
rtm/SystemLogger.h
>
27
28
#include <string>
29
30
namespace
RTC
31
{
54
class
PortAdmin
55
{
56
public
:
76
PortAdmin
(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa);
77
91
virtual
~PortAdmin
();
92
113
PortServiceList*
getPortServiceList
()
const
;
114
135
PortProfileList
getPortProfileList
()
const
;
136
163
PortService_ptr
getPortRef
(
const
char
* port_name)
const
;
164
191
PortBase
*
getPort
(
const
char
* port_name)
const
;
192
219
bool
addPort
(
PortBase
& port);
220
247
bool
addPort
(PortService_ptr port);
248
273
void
registerPort
(
PortBase
& port);
274
299
void
registerPort
(PortService_ptr port);
300
326
bool
removePort
(
PortBase
& port);
327
353
bool
removePort
(PortService_ptr port);
354
378
void
deletePort
(
PortBase
& port);
379
403
void
deletePort
(PortService_ptr port);
404
429
void
deletePortByName
(
const
char
* port_name);
430
449
void
activatePorts
();
450
469
void
deactivatePorts
();
470
488
void
finalizePorts
();
489
490
private
:
498
CORBA::ORB_var m_pORB;
499
507
PortableServer::POA_var m_pPOA;
508
516
PortServiceList m_portRefs;
517
525
mutable
Logger
rtclog;
526
534
template
<
class
T>
535
class
comp_op
536
{
537
public
:
538
explicit
comp_op(
const
char
* _name)
539
: m_name(_name)
540
{
541
}
542
explicit
comp_op(T* obj)
543
: m_name(static_cast<const char*>(obj->getProfile().name))
544
{
545
}
546
bool
operator()(T* obj)
547
{
548
std::string name(
static_cast<
const
char
*
>
(obj->getProfile().name));
549
return
m_name == name;
550
}
551
private
:
552
std::string m_name;
553
};
554
562
class
port_prof_collect
563
{
564
public
:
565
explicit
port_prof_collect(PortProfileList& p) : m_p(p) {}
566
void
operator()(
const
PortBase* port)
567
{
568
CORBA_SeqUtil::push_back
(m_p, port->getPortProfile());
569
}
570
private
:
571
PortProfileList& m_p;
572
};
573
581
class
port_prof_collect2
582
{
583
public
:
584
explicit
port_prof_collect2(PortProfileList& p) : m_p(p) {}
585
#ifdef ORB_IS_ORBEXPRESS
586
void
operator()(
const
PortService_var port)
587
#else
588
void
operator()(
const
PortService_ptr port)
589
#endif
590
{
591
PortProfile* pp(port->get_port_profile());
592
CORBA_SeqUtil::push_back
(m_p, *(pp));
593
delete
pp;
594
}
595
private
:
596
PortProfileList& m_p;
597
};
598
599
struct
find_port_name;
600
struct
find_port;
601
struct
del_port;
602
603
// サーバントを直接格納するオブジェクトマネージャ
604
ObjectManager<const char*, PortBase, comp_op<PortBase> > m_portServants;
605
606
};
607
}
// namespace RTC
608
#endif
// RTC_PORTADMIN_H
ObjectManager.h
Object management class
PortBase.h
RTC's Port base class
SystemLogger.h
RT component logger class
RTC::Logger
Logger クラス
Definition
SystemLogger.h:101
RTC::PortAdmin::deletePort
void deletePort(PortService_ptr port)
Port の登録を解除する
RTC::PortAdmin::deletePortByName
void deletePortByName(const char *port_name)
名称指定によりPort の登録を解除する
RTC::PortAdmin::removePort
bool removePort(PortService_ptr port)
Port の登録を解除する
RTC::PortAdmin::finalizePorts
void finalizePorts()
全ての Port をdeactivateし登録を削除する
RTC::PortAdmin::~PortAdmin
virtual ~PortAdmin()
デストラクタ
RTC::PortAdmin::addPort
bool addPort(PortBase &port)
Port を登録する
RTC::PortAdmin::getPort
PortBase * getPort(const char *port_name) const
Port のサーバントのポインタの取得
RTC::PortAdmin::registerPort
void registerPort(PortBase &port)
Port を登録する
RTC::PortAdmin::getPortServiceList
PortServiceList * getPortServiceList() const
Port リストの取得
RTC::PortAdmin::removePort
bool removePort(PortBase &port)
Port の登録を解除する
RTC::PortAdmin::activatePorts
void activatePorts()
全ての Port のインターフェースを activates する
RTC::PortAdmin::PortAdmin
PortAdmin(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa)
コンストラクタ
RTC::PortAdmin::registerPort
void registerPort(PortService_ptr port)
Port を登録する
RTC::PortAdmin::deletePort
void deletePort(PortBase &port)
Port の登録を解除する
RTC::PortAdmin::deactivatePorts
void deactivatePorts()
全ての Port のインターフェースを deactivates する
RTC::PortAdmin::addPort
bool addPort(PortService_ptr port)
Port を登録する
RTC::PortAdmin::getPortRef
PortService_ptr getPortRef(const char *port_name) const
Port のオブジェクト参照の取得
RTC::PortAdmin::getPortProfileList
PortProfileList getPortProfileList() const
PorProfile リストの取得
RTC::PortBase
Port の基底クラス
Definition
PortBase.h:132
CORBA_SeqUtil::push_back
void push_back(CorbaSequence &seq, SequenceElement elem)
CORBA sequence の最後に要素を追加する
Definition
CORBA_SeqUtil.h:175
RTC
RTコンポーネント
構築:
1.17.0