Hitachi

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド


15.5 OADとのIDLインタフェース

OADはVisiBroker ORBオブジェクトとしてインプリメントされており,クライアントプログラムがOADにバインドして,登録されたオブジェクトの状態を照会するためにインタフェースを使用できるようにしています。IDLサンプル15-6に,OADのIDLインタフェース定義を示します。

IDLサンプル15-6 OADインタフェース定義
module Activation
{
   enum State {
      ACTIVE,
      INACTIVE,
      WAITING_FOR_ACTIVATION
   };
   struct ObjectStatus {
      long unique_id;
      State activation_state;
      Object objRef;
   };
   typedef sequence<ObjectStatus> ObjectStatusList;
   struct ImplementationStatus {
      extension::CreationImplDef impl;
      ObjectStatusList status;
   };
   typedef sequence<ImplementationStatus> ImplStatusList;
 
   exception DuplicateEntry {};
   exception InvalidPath {};
   exception NotRegistered {};
   exception FailedToExecute {};
   exception NotResponding {};
   exception IsActive {};
   exception Busy {};
 
   interface OAD {
      Object reg_implementation(
            in extension::CreationImplDef impl)
              raises (DuplicateEntry, InvalidPath);
      extension::CreationImplDef get_implementation(
            in CORBA::RepositoryId repId,
            in string object_name)
              raises ( NotRegistered);
      void change_implementation(
            in extension::CreationImplDef old_info,
            in extension::CreationImplDef new_info)
              raises (NotRegistered,InvalidPath,IsActive);
      attribute boolean destroy_on_unregister;
      void unreg_implementation(in CORBA::RepositoryId repId,
            in string object_name)
              raises ( NotRegistered );
      void unreg_interface(in CORBA::RepositoryId repId)
              raises ( NotRegistered );
      void unregister_all();
      ImplementationStatus get_status(
            in CORBA::RepositoryId repId,
            in string object_name)
              raises ( NotRegistered );
      ImplStatusList get_status_interface(
            in CORBA::RepositoryId repId)
              raises (NotRegistered);
      ImplStatusList get_status_all();
   };
};