OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::ConnectorDataListenerHolder クラス

ConnectorDataListener ホルダクラス [詳解]

#include <ConnectorListener.h>

RTC::ConnectorDataListenerHolder の継承関係図
RTC::ConnectorDataListenerHolder 連携図

公開メンバ関数

 ConnectorDataListenerHolder ()
 コンストラクタ
 
virtual ~ConnectorDataListenerHolder ()
 デストラクタ
 
void addListener (ConnectorDataListener *listener, bool autoclean)
 リスナーの追加
 
void removeListener (ConnectorDataListener *listener)
 リスナーの削除
 
size_t size ()
 リスナーの数を得る
 
virtual ReturnCode notify (ConnectorInfo &info, ByteData &cdrdata, const std::string &marshalingtype)
 リスナーへ通知する
 
virtual ReturnCode notifyIn (ConnectorInfo &info, ByteData &data)
 
virtual ReturnCode notifyOut (ConnectorInfo &info, ByteData &data)
 
template<class DataType >
ReturnCode notifyIn (ConnectorInfo &info, DataType &typeddata)
 リスナーへ通知する(データ型指定版、InPort側) 登録されているリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyIn関数を使用する必要がある。
 
template<class DataType >
ReturnCode notifyOut (ConnectorInfo &info, DataType &typeddata)
 リスナーへ通知する(データ型指定版、OutPort側) 登録されているリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyOut関数を使用する必要がある。
 
template<class DataType >
ReturnCode notify (ConnectorInfo &info, DataType &typeddata, const std::string &marshalingtype)
 リスナーへ通知する(データ型指定版)
 

公開変数類

 USE_CONNLISTENER_STATUS
 

限定公開変数類

std::vector< Entry > m_listeners
 
std::mutex m_mutex
 
ByteDataStreamBasem_cdr { nullptr }
 
std::string m_marshalingtype
 

その他の継承メンバ

- 基底クラス RTC::ConnectorListenerStatus に属する継承公開型
enum  Enum { NO_CHANGE = 0 , INFO_CHANGED = 1 << 0 , DATA_CHANGED = 1 << 1 , BOTH_CHANGED = INFO_CHANGED | DATA_CHANGED }
 

詳解

ConnectorDataListener ホルダクラス

複数の ConnectorDataListener を保持し管理するクラス。

構築子と解体子

◆ ConnectorDataListenerHolder()

RTC::ConnectorDataListenerHolder::ConnectorDataListenerHolder ( )

コンストラクタ

◆ ~ConnectorDataListenerHolder()

virtual RTC::ConnectorDataListenerHolder::~ConnectorDataListenerHolder ( )
virtual

デストラクタ

関数詳解

◆ addListener()

void RTC::ConnectorDataListenerHolder::addListener ( ConnectorDataListener * listener,
bool autoclean )

リスナーの追加

リスナーを追加する。

引数
listener追加するリスナ
autocleantrue:デストラクタで削除する, false:デストラクタで削除しない

◆ notify() [1/2]

virtual ReturnCode RTC::ConnectorDataListenerHolder::notify ( ConnectorInfo & info,
ByteData & cdrdata,
const std::string & marshalingtype )
virtual

リスナーへ通知する

登録されているリスナのコールバックメソッドを呼び出す。

引数
infoConnectorInfo
cdrdataデータ

RTC::ConnectorDataListenerHolderT< DataType >で再実装されています。

参照元 notifyIn(), notifyOut().

◆ notify() [2/2]

template<class DataType >
ReturnCode RTC::ConnectorDataListenerHolder::notify ( ConnectorInfo & info,
DataType & typeddata,
const std::string & marshalingtype )
inline

リスナーへ通知する(データ型指定版)

登録されているリスナのコールバックメソッドを呼び出す。 ConnectorDataListenerT 型のコールバックのみコールされる。

引数
infoConnectorInfo
typeddataデータ(データ型指定あり)
marshalingtypeシリアライザの種類

参照先 RTC::createSerializer(), RTC::ByteDataStreamBase::isLittleEndian(), m_cdr, m_listeners, m_marshalingtype, m_mutex, RTC::ConnectorListenerStatus::NO_CHANGE, RTC::ConnectorInfo::properties, RTC::ByteDataStream< DataType >::serialize().

◆ notifyIn() [1/2]

virtual ReturnCode RTC::ConnectorDataListenerHolder::notifyIn ( ConnectorInfo & info,
ByteData & data )
virtual

◆ notifyIn() [2/2]

template<class DataType >
ReturnCode RTC::ConnectorDataListenerHolder::notifyIn ( ConnectorInfo & info,
DataType & typeddata )
inline

リスナーへ通知する(データ型指定版、InPort側) 登録されているリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyIn関数を使用する必要がある。

引数
infoConnectorInfo
typeddataデータ(データ型指定あり)

参照先 notify(), RTC::ConnectorInfo::properties.

◆ notifyOut() [1/2]

virtual ReturnCode RTC::ConnectorDataListenerHolder::notifyOut ( ConnectorInfo & info,
ByteData & data )
virtual

◆ notifyOut() [2/2]

template<class DataType >
ReturnCode RTC::ConnectorDataListenerHolder::notifyOut ( ConnectorInfo & info,
DataType & typeddata )
inline

リスナーへ通知する(データ型指定版、OutPort側) 登録されているリスナのコールバックメソッドを呼び出す。 InPortとOutPortでシリアライザの種類が違う場合があるため、 InPort側ではnotifyOut関数を使用する必要がある。

引数
infoConnectorInfo
typeddataデータ(データ型指定あり)

参照先 notify(), RTC::ConnectorInfo::properties.

◆ removeListener()

void RTC::ConnectorDataListenerHolder::removeListener ( ConnectorDataListener * listener)

リスナーの削除

リスナを削除する。

引数
listener削除するリスナ

◆ size()

size_t RTC::ConnectorDataListenerHolder::size ( )

リスナーの数を得る

現在登録されているリスナー数を得る。

戻り値
listener数

メンバ詳解

◆ m_cdr

ByteDataStreamBase* RTC::ConnectorDataListenerHolder::m_cdr { nullptr }
protected

◆ m_listeners

std::vector<Entry> RTC::ConnectorDataListenerHolder::m_listeners
protected

◆ m_marshalingtype

std::string RTC::ConnectorDataListenerHolder::m_marshalingtype
protected

◆ m_mutex

std::mutex RTC::ConnectorDataListenerHolder::m_mutex
protected

◆ USE_CONNLISTENER_STATUS

RTC::ConnectorDataListenerHolder::USE_CONNLISTENER_STATUS

このクラス詳解は次のファイルから抽出されました: