ダウンロード
最新バージョン
C++ | 1.2.1-RELESE |
Java | 1.2.1-RELESE |
Python | 1.2.1-RELESE |
Tools | 1.2.1 |
初めての方へ
Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)
C++,Python,Java, Toolsを含む |
1.2.1-RELEASE |
RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページへ
Choreonoid
モーションエディタ/シミュレータ
OpenHRP3
動力学シミュレータ
OpenRTP
統合開発プラットフォーム
産総研RTC集
産総研が提供するRTC集
TORK
東京オープンソースロボティクス協会
DAQ-Middleware
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
_ptr_type、_var_type について
template class を作成するときに、オブジェクトの型と、_ptr型、_var型がそれぞれ必要になる場合があります。
といったインターフェースが定義されている場合、クライアント側では、Hello、Hello_ptr、Hello_var を使用することになりますが、_ptr、_var 型は単なる Hello のポインタではありませんので、これらを全て使うテンプレートクラスの宣言などは、
等のように書く必要があります。 しかし、実際には、omniORB などでは Hello クラス内で _ptr型、_var型をそれぞれ、_ptr_type、_var_type に typedef して利用しています。 omniORB で生成したスタブのコードの一部、
このように定義されています。 従って、上記の template は以下のように書くことができます。
ただし、CORBA の仕様を見る限りでは _ptr_type や _var_type が標準として定められているわけではなさそうですので、この方法はポータブルな方法ではありません。 少なくとも omniORB4 でのみは確実に動作しそうですが、ほかの実装では、どのように定義されているかわかりません。 (定義が異なる場合は、template の第2引数、第3引数にそれぞれ_ptr型や、_var型を与えれば使えますが。。。)
他の ORB での定義の仕方
omniORB4
上記のように、_ptr_type、_var_type が使えます。
TAO
TAO でも、同様の方法が使えます。 以下は、TAOのスタブの一部抜粋。
MICO
MICO も同様に _ptr_type、_var_type が typedef されているので、同様の方法が使えます。 ただし、HAVE_TYPEDEF_OVERLOAD が define されている必要があるようですが、デフォルトでは _ptr_type、_var_type にアクセスできるようなので、問題ないようです。
ORBacus
手元に開発環境が無いため、google CodeSearch で探したところ、このようなコードがありましたので、状況は同じものと思われます。
ORBit2
google CodeSearch で、このようなコードを見つけました。 CosNaming の BindingIterator のスタブだと思われますが、_ptr_type、_var_type が定義されています。