Iceの詳細
2596 ワード
http://www.cppprog.com/2009/0605/121.htmlを回転します
ICEの全体構造
サーバ端:
サーバーの端には通常一つの通信機しかないです。通信機には一連のリソースが含まれています。
スレッド池、構成属性、対象工場、ログ記録、統計対象、ルータ、ポジショナ、プラグインマネージャ、オブジェクトアダプタなど
通信機内には、1つ以上のオブジェクトアダプタが含まれており、オブジェクトアダプタは、1つ以上の転送ポイントを提供し、入力された要求を対応するservantに割り当てて実行する。
具体的に実現される部分をservantと呼び、クライアントからの呼び出しにサービスを提供する。servantが対象アダプタに登録した後、対象アダプタが顧客要求に応じてメソッドを呼び出す。
クライアント:
クライアントは直接にエージェントを通して遠隔呼出しを行い、ローカル呼出しのように簡単である。
通信機Ice:Communicator
通信機はスレッド池、配置属性、対象工場、ログ記録、統計対象、ルータ、ポジショナ、プラグインマネージャ、対象アダプタを管理しています。
通信機のいくつかの重要な方法:
MyApp.Proxy=ident:tcp-p 5000
私たちはこのようにしてその代理対象を得ることができます。
Ice:Object Prx=communicator->propertyToProxy(「MyApp.Proxy」);
namespace Ice{ }
struct Identity { }
std:sting name; std:sting category; }; } 文字列と変換すると、対応する文字列形式は、CATEGORY/NAMEです。文字列「Factory/File」、Factoryはcategory、Fileはnameです。
categoryの部分は空いています。
ICEの全体構造
サーバ端:
サーバーの端には通常一つの通信機しかないです。通信機には一連のリソースが含まれています。
スレッド池、構成属性、対象工場、ログ記録、統計対象、ルータ、ポジショナ、プラグインマネージャ、オブジェクトアダプタなど
通信機内には、1つ以上のオブジェクトアダプタが含まれており、オブジェクトアダプタは、1つ以上の転送ポイントを提供し、入力された要求を対応するservantに割り当てて実行する。
具体的に実現される部分をservantと呼び、クライアントからの呼び出しにサービスを提供する。servantが対象アダプタに登録した後、対象アダプタが顧客要求に応じてメソッドを呼び出す。
クライアント:
クライアントは直接にエージェントを通して遠隔呼出しを行い、ローカル呼出しのように簡単である。
通信機Ice:Communicator
通信機はスレッド池、配置属性、対象工場、ログ記録、統計対象、ルータ、ポジショナ、プラグインマネージャ、対象アダプタを管理しています。
通信機のいくつかの重要な方法:
std::string proxyToString(const Ice::ObjectPrx&) const;
Ice::ObjectPrx stringToProxy(const std::string&) const;
この2つの方法は、エージェントオブジェクトと文字列との間で相互に変換することができる。proxyToString方法については、代理人のiceを使ってもいいです。Stringメソッドを代替します。Ice::ObjectPrx propertyToProxy(const std::string&) const;
この方法は、与えられた名前の属性構成に基づいて、対応する属性がない場合、空のプロキシを返します。 たとえば、次のような属性があります。MyApp.Proxy=ident:tcp-p 5000
私たちはこのようにしてその代理対象を得ることができます。
Ice:Object Prx=communicator->propertyToProxy(「MyApp.Proxy」);
Ice::Identity stringToIdentity(const std::string&) const;
std::string identityToString(const Ice::Identity&) const;
オブジェクト識別に文字列を変換します。オブジェクト識別の定義は以下の通りです。namespace Ice
struct Identity
std:sting name;
categoryの部分は空いています。
Ice::ObjectAdapterPtr createObjectAdapter(const std::string&);
Ice::ObjectAdapterPtr createObjectAdapterWithEndpoints(
const std::string&, const std::string&);
この二つの方法は新しいオブジェクトアダプタを作成します。createObject Adapterは属性設定からエンドポイント情報を取得します。createObject AdapterWithEndpointsはエンドポイントを直接指定します。void shutdown();
サービス端末のIce実行時ライブラリを閉じ、shutdownを呼び出した後、実行中の操作は正常に完了します。shutdownはこれらの操作が完了するのを待つことはありません。void waitForShutdown();
この方法は、通信機が閉じるまで呼び出されたスレッドを保留します。void destroy();
この方法は、通信機の関連リソースを回収します。スレッド、通信端末、メモリリソースなどです。main関数を離れる前に、destoryを呼び出す必要があります。bool isShutdown() const;
shutdownが呼び出されたらtrueに戻ります。