Environmentインタフェース |
例外情報を設定/取得するための擬似オブジェクトインタフェースです。
4.4.1.4. CORBA::Environmentクラス |
例外情報を設定/取得するためのクラスです。
Object Brokerではソケットに関する情報を取り扱うための拡張や例外情報をファイルストリームに書き出すための拡張が行われています。
exception(CORBA::Exception*) | 例外を設定する |
exception | 例外を取り出す |
clear | 例外をクリアする |
_duplicate | 論理的コピーを作る |
_nil | nil Environmentを得る |
__connection | クライアントとのコネクションを得る |
__socket_per_request | リクエストごとのソケット設定を調べる |
__socket_per_request(CORBA::Boolean) | リクエストごとのソケット設定を行なう |
4.4.7.3. Ob_SvrConクラス |
CORBA::Environment::__connectionを呼び出した結果として返されるクラスです。クライアントのアドレスを取得することができます。
get_peer | クライアントアドレスを得る |
CORBA::Environment::exception(CORBA::Exception*) - 例外を設定する
#include <orb.h> void CORBA::Environment::exception( CORBA::Exception* ep );
ユーザ例外あるいはシステム例外epを設定します。呼び出されたオペレーション内で設定すると、呼び出し元へ例外を返すことができます。
ありません。
起こりません。
CORBA::Environment::exception - 例外を取り出す
#include <orb.h> CORBA::Exception* CORBA::Environment::exception() const;
Environmentから例外を取り出します。例外が発生していない場合ヌル・ポインタが返ります。
例外を返します。
起こりません。
CORBA::Environment::clear - 例外をクリアする
#include <orb.h> void CORBA::Environment::clear();
Environmentに設定されている例外をクリアします。
ありません。
起こりません。
CORBA::Environment::_duplicate - 論理的コピーを作る
#include <orb.h> static CORBA::Environment_ptr CORBA::Environment::_duplicate( CORBA::Environment_ptr obj, CORBA::Environment& env = Ob_default_environment() );
引数objの論理的コピーを作ります。
論理的にコピーされたEnvironmentがCORBA::Environment_ptr型で返されます。
CORBA標準例外がthrowされます。
CORBA::Environment::_nil - nil Environmentを得る
#include <orb.h> static CORBA::Environment_ptr CORBA::Environment::_nil( CORBA::Environment& env = Ob_default_environment() );
nil Environmentを返します。
nil EnvironmentがCORBA::Environment_ptr型で返ります。
CORBA標準例外がthrowされます。
CORBA::Environment::__connection - クライアントとのコネクションを得る
#include <orb.h> Ob_SvrCon* CORBA::Environment::__connection();
サーバオペレーション実装コード内で呼び出すとクライアントとのコネクションをあらわすオブジェクトが返ります。
クライアントとのコネクションをあらわすオブジェクトが返ります。
クライアントから呼び出されていない場合はヌル・ポインタが返ります。
起こりません。
CORBA::Environment::__socket_per_request - リクエストごとのソケット設定を調べる
#include <orb.h> CORBA::Boolean CORBA::Environment::__socket_per_request();
クライアントでリクエストごとにコネクションを生成する設定かどうかを調べます。
1: リクエストごとにコネクションを生成する。
0: 毎回コネクションを生成するのではなくソケットを再利用する。
起こりません。
CORBA::Environment::__socket_per_request(CORBA::Boolean)
- リクエストごとのソケット設定を行なう
#include <orb.h> void CORBA::Environment::__socket_per_request( CORBA::Boolean b );
クライアントでリクエストごとにコネクションを生成するかどうかの設定を行ないます。オペレーション呼び出し時に引数として渡すEnvironmentに対して、あらかじめ設定しておく必要があります。bに1を設定して呼び出すとリクエスト毎にコネクションを生成します。bに0を設定して呼び出すとリクエスト毎にコネクションを生成せず、ソケットを再利用します。
ありません。
起こりません。
Ob_SvrCon::get_peer - クライアントアドレスを得る
#include <orb.h> void Ob_SvrCon::get_peer( char*& ipaddr, CORBA::UShort& port, CORBA::Environment& env );
クライアントのIPアドレスおよびポート番号を得ます。
この関数はオペレーション実装コード内で次のように用います。
char* ipaddr = 0; CORBA::UShort port = 0; Ob_SvrCon* con = env.__connection(); if (con) { try { con->get_peer(ipaddr, port, env); // ipaddrにクライアントのIPアドレス文字列、 // portにクライアントのポート番号 // がそれぞれ設定されている。 if (ipaddr) { CORBA::string_free(ipaddr); } } catch (CORBA::Exception&) { // 例外が発生しました。ここでエラー処理を行ないます。 } }
envは、関数を呼び出した後、例外の有無を調べるために指定します(オプション)。
ありません。
CORBA標準例外がthrowされます。