Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド
オブジェクトリファレンスが特定のタイプかどうかは,_is_a()メソッド(C++およびJava)を使用してチェックできます。最初に,_repository_id()メソッド(C++およびJava)を使用して,チェックしたいタイプのリポジトリIDを取得する必要があります。このメソッドは,オブジェクトが_repository_id()メソッドで表されるタイプのインスタンスか,サブタイプであれば,1(C++)またはtrue(Java)を返します。オブジェクトが指定のタイプでなければ,0(C++)またはfalse(Java)を返します。この時,タイプを判定するためにリモート呼び出しが必要な場合があるので注意してください。
二つのオブジェクトリファレンスが同じオブジェクトインプリメンテーションを参照するかどうかのチェックには,_is_equivalent()メソッド(C++およびJava)を使用します。このメソッドは,これらのオブジェクトリファレンスが等しければ1(C++)またはtrue(Java)を返します。オブジェクトリファレンスが異なるなら,このメソッドは0(C++)またはfalse(Java)を返しますが,オブジェクトリファレンスが二つの異なったオブジェクトであるということを示すとは限りません。これはライトウェイトメソッドであり,サーバオブジェクトとの実際の通信は必要としません。オブジェクトリファレンスのタイプを判定するメソッドを表10-3に示します。
表10-3 オブジェクトリファレンスのタイプを判定するメソッド
メソッド | 説明 |
---|---|
_hash(C++の場合) | オブジェクトリファレンスのハッシュ値を返します。 |
_is_a | 指定されたインタフェースをオブジェクトがインプリメントするかどうかを判定します。 |
_is_equivalent | 二つのオブジェクトが同じインタフェースインプリメンテーションを参照するなら,1(C++)またはtrue(Java)を返します。 |
All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd.
COPYRIGHT (C) 1992-2004 Borland Software Corporation. All rights reserved.