module ISTD {
interface SMO {
// クライアント識別子のデータ型
const unsigned long ClientIdLen = 48; // クライアント識別子長
typedef sequence<octet,ClientIdLen> ClientId; // クライアント識別子型
// セションIDのデータ型
const unsigned long SessionIdLen = 48; // セションID長
typedef octet SessionId[SessionIdLen]; // セションID型
// ユーザ例外処理の定義
exception InvalidArgument { string reason; }; // パラメタ異常
exception ProcessFailed {}; // 処理異常
exception AlreadyExist {}; // 既登録
exception NotExist {}; // 対象セション情報域なし
exception NotRegistered {}; // 対象リスナ未登録
// create_info の復帰値
const unsigned long TD_OK_NEW = 0; // 新規生成
const unsigned long TD_OK_OLD = 1; // 既存セション情報域返却
// セション情報域型
typedef sequence<octet> SessionInfo;
//
// --- operations for client id ---
//
long create_info( // セション情報域の獲得
in ClientId CLIENT_ID,
in unsigned long slotno,
in unsigned long size,
in unsigned long lifetime
) raises( InvalidArgument, ProcessFailed, AlreadyExist );
void set_info( // セション情報域へのデータを書込
in ClientId CLIENT_ID,
in unsigned long slotno,
in SessionInfo data
) raises( InvalidArgument, NotExist );
void get_info( // セション情報域からのデータを読込
in ClientId CLIENT_ID,
in unsigned long slotno,
out SessionInfo data
) raises( InvalidArgument, NotExist );
void delete_info( // セション情報域の解放
in ClientId CLIENT_ID,
in unsigned long slotno
) raises( InvalidArgument, NotExist );
void add_listener( // リスナの登録
in Object LISTENER_OR
) raises( InvalidArgument );
void del_listener( // リスナの抹消
in Object LISTENER_OR
) raises( InvalidArgument, NotRegistered );
//
// --- operatoins for session id ---
//
long create_info2( // セション情報域の獲得
in SessionId SESSION_ID,
in unsigned long slotno,
in unsigned long size,
in unsigned long lifetime
) raises( InvalidArgument, ProcessFailed, AlreadyExist );
void set_info2( // セション情報域へのデータを書込
in SessionId SESSION_ID,
in unsigned long slotno,
in SessionInfo data
) raises( InvalidArgument, NotExist );
void get_info2( // セション情報域からのデータを読込
in SessionId SESSION_ID,
in unsigned long slotno,
out SessionInfo data
) raises( InvalidArgument, NotExist );
void delete_info2( // セション情報域の解放
in SessionId SESSION_ID,
in unsigned long slotno
) raises( InvalidArgument, NotExist );
void add_listener2( // リスナの登録
in Object LISTENER_OR
) raises( InvalidArgument );
void del_listener2( // リスナの抹消
in Object LISTENER_OR
) raises( InvalidArgument, NotRegistered );
}; // SMO
interface SMO_LISTENER { // 事象通知リスナインタフェース(クライアント識別子用)
// クライアント識別子のデータ型
const unsigned long ClientIdLen = 48; // クライアント識別子長
typedef sequence<octet,ClientIdLen> ClientId; // クライアント識別子型
// セション情報域型
typedef sequence<octet> SessionInfo;
// 事象通知データ型(クライアント識別子用)
struct SlotInfo {
ClientId CLIENT_ID;
unsigned long slotno;
SessionInfo data;
};
typedef sequence<SlotInfo> DelSlotInfo;
void timeout( // イベント受信
in DelSlotInfo data
);
}; // SMO_LISTENER
interface SMO_LISTENER2 { // 事象通知リスナインタフェース(セションID用)
// セションIDのデータ型
const unsigned long SessIdLen = 48; // セションID長
typedef octet SessionId[SessIdLen]; // セションID型
// セション情報域型
typedef sequence<octet> SessionInfo;
// 事象通知データ型(セションID用)
struct SlotInfo {
SessionId SESSION_ID;
unsigned long slotno;
SessionInfo data;
};
typedef sequence<SlotInfo> DelSlotInfo;
void timeout( // イベント受信
in DelSlotInfo data
);
}; // SMO_LISTENER2
}; |