ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
CORBAについては分かり易く解説してるサイトがあったので,そちらを見た方が良さそうですね.
ちなみにOmniORBのマニュアルはこのページです.
なんで前々回の記事でリンク集作ったかって言うと,僕のブログやHP見るより他のサイトを見る方が参考になると思ってるからですしね.
それはおいといて,今回は前回のサンプルのソースを見ていこうと思います.
まず,先頭に
# undef USE_stub_in_nt_dll
# include "example_echo.hh"
# include "example_echoSK.cc"
と記述してください.
mainでは,
// ORBの生成と初期化
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
// RootPOA(ツリー構造のルート)への参照を取得
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);
//サーバントオブジェクト
Echo_i* myecho = new Echo_i();
//オブジェクトIDを生成し,サーバントをAOMに格納
PortableServer::ObjectId_var myechoid = poa->activate_object(myecho);
//サーバントのオブジェクトリファレンス取得
Example::Echo_var myechoref = myecho->_this();
//リファレンスカウンタ
myecho->_remove_ref();
//POAManagerオブジェクトの取得とアクティブ状態への遷移
PortableServer::POAManager_var pman = poa->the_POAManager();
pman->activate();
//hello関数(後述)
hello(myechoref);
// ORBの破棄
orb->destroy();
みたいな流れですかね.説明が間違ってる可能性もありますが.
hello関数では,
//オブジェクトリファレンスeによりechoStringを呼び出す
CORBA::String_var dest = e->echoString(src);
しかしてないです.
echoStringからは同じ文字列が返されます.
今回は自分が要求を受け付けるサーバーで,echoStringの処理を要求するクライアントも自分という感じでしたが,次回はネーミングサービスを使って違うプログラムにします.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
ちなみにOmniORBのマニュアルはこのページです.
なんで前々回の記事でリンク集作ったかって言うと,僕のブログやHP見るより他のサイトを見る方が参考になると思ってるからですしね.
それはおいといて,今回は前回のサンプルのソースを見ていこうと思います.
まず,先頭に
# undef USE_stub_in_nt_dll
# include "example_echo.hh"
# include "example_echoSK.cc"
と記述してください.
mainでは,
// ORBの生成と初期化
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
// RootPOA(ツリー構造のルート)への参照を取得
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);
//サーバントオブジェクト
Echo_i* myecho = new Echo_i();
//オブジェクトIDを生成し,サーバントをAOMに格納
PortableServer::ObjectId_var myechoid = poa->activate_object(myecho);
//サーバントのオブジェクトリファレンス取得
Example::Echo_var myechoref = myecho->_this();
//リファレンスカウンタ
myecho->_remove_ref();
//POAManagerオブジェクトの取得とアクティブ状態への遷移
PortableServer::POAManager_var pman = poa->the_POAManager();
pman->activate();
//hello関数(後述)
hello(myechoref);
// ORBの破棄
orb->destroy();
みたいな流れですかね.説明が間違ってる可能性もありますが.
hello関数では,
//オブジェクトリファレンスeによりechoStringを呼び出す
CORBA::String_var dest = e->echoString(src);
しかしてないです.
echoStringからは同じ文字列が返されます.
今回は自分が要求を受け付けるサーバーで,echoStringの処理を要求するクライアントも自分という感じでしたが,次回はネーミングサービスを使って違うプログラムにします.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする