Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド
タイプドオブジェクトラッパーを,idl2cppコンパイラ(C++)またはidl2javaコンパイラ(Java)で生成した<interface_name>ObjectWrapperクラスから派生させてください。コードサンプル21-10にAccountインタフェース用タイプドオブジェクトラッパーのインプリメンテーション(Java)を示します。このクラスはAccountObjectWrapperインタフェースから派生していて,balanceメソッドの単純なキャッシングインプリメンテーションを提供していることに注意してください。balanceメソッドは次のような手順で処理を実行します。
class CachingAccountObjectWrapper : public Bank:: AccountObjectWrapper { public: CachingAccountObjectWrapper() : _inited((CORBA::Boolean)0) {} CORBA::Float balance() { cout << "+CachingAccountObjectWrapper: Before Calling Balance" << endl; if (! _inited) { _balance = Bank::AccountObjectWrapper::balance(); _inited = 1; } else { cout << "+ CachingAccountObjectWrapper: Returning Cached Value" << endl; } cout << "+ CachingAccountObjectWrapper: After Calling Balance" << endl; return _balance; } . . . };
package BankWrappers; public class CachingAccountObjectWrapper extends Bank.AccountObjectWrapper { private boolean _initialized = false; private float _balance; public float balance() { System.out.println( "+ CachingAccountObjectWrapper: Before calling balance: "); try { if( !_initialized ) { _balance = super.balance(); _initialized = true; } else { System.out.println( "+ CachingAccountObjectWrapper: Returning Cached value"); } return _balance; }finally { System.out.println( "+ CachingAccountObjectWrapper: After calling balance: "); } } }
All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.
COPYRIGHT (C) 1992-2004 Borland Software Corporation. All rights reserved.