Hitachi

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


22.2.1 IDL定義

インタフェース定義を次に示します。

module EventQueue {
   // Connection event types
   enum EventType {UNDEFINED, CONN_EVENT_TYPE};
 
   // Peer (Client)connection info
   struct ConnInfo {
      string ipaddress; // in %d.%d.%d.%d format
      long     port;
      long     connID;
   };
 
   // Marker interface for all types of event listeners
   local interface EventListener {};
 
 
   typedef sequence<EventListener> EventListeners;
 
 
   // connection event listener interface
   local interface ConnEventListener : EventListener{
         void conn_established(in ConnInfo info);
         void conn_closed(in ConnInfo info);
   };
 
   // The EventQueue manager
   local interface EventQueueManager :
                             interceptor::InterceptorManager {
        void register_listener(in EventListener listener,
                                           in EventType type);
        void unregister_listener(in EventListener listener,
                                           in EventType type);
        EventListeners get_listeners(in EventType type);
   };
 
};

インタフェース定義の詳細を以降で説明します。

〈この項の構成〉

(1) ConnInfo構造体

ConnInfo構造体には次のようなクライアントコネクション情報があります。

(2) EventListenerインタフェース

EventListenerインタフェースの部分は,すべてのタイプのイベントリスナーのマーカーインタフェースです。

(3) ConnEventListenersインタフェース

ConnEventListenersインタフェースは次のように二つのオペレーションを定義します。

サーバ側アプリケーションは,リスナーにプッシュされているイベントの処理と同様,ConnEventListenerインタフェースのインプリメンテーションにも責任があります。

(4) EventQueueManagerインタフェース

EventQueueManagerインタフェースは,イベントリスナーの登録に関するサーバ側インプリメンテーションによってハンドルとして使用されます。このインタフェースは次のように三つのオペレーションを定義します。