/** * File: SetMemberInfo.idl * Content: CORBA specification of a set containing MemberInfo structures * Author: LuisM Pena * Date: 17th November 2001 * Version: 0.29.00 * Last changes: * **/ #ifndef SET_MEMBER_INFO #define SET_MEMBER_INFO #include "DomainGroupHandler.idl" #include "MemberInfo.idl" module sensei { module middleware { module gmns { //bringing some declarations into scope ... typedef sensei::middleware::domains::DomainMessage DomainMessage; typedef sensei::middleware::domains::ExtendedCheckpointable ExtendedCheckpointable; typedef sensei::middleware::domains::State State; /***********************************************************************/ /************************* SET MEMBERINFO OBSERVER *********************/ /***********************************************************************/ interface SetMemberInfoObservable; /** * Interface to be implemented by observers of the state of the SetMemberInfo */ interface SetMemberInfoObserver { void addDone(in SetMemberInfoObservable observable, in MemberInfo member); void removeDone(in SetMemberInfoObservable observable, in MemberInfo member); }; /***********************************************************************/ /************************* SET MEMBERINFO OBSERVABLE *******************/ /***********************************************************************/ interface SetMemberInfoObservable { void addObserver(in SetMemberInfoObserver observer); boolean removeObserver(in SetMemberInfoObserver observer); }; /***********************************************************************/ /************************* SET MEMBERINFO ****************************/ /***********************************************************************/ /** * This interfaces defines a set with reduced operations. * And it is mean to contain just GroupHandlers **/ interface SetMemberInfo : ExtendedCheckpointable, SetMemberInfoObservable { /** * Adds the specified element to this set if it is not already present */ boolean add(in MemberInfo member) raises (sensei::middleware::domains::MemberStateException); /** * Removes the specified element from this set if it is present **/ boolean remove(in MemberInfo handler) raises (sensei::middleware::domains::MemberStateException); /** * Specific operation, not existing in a normal Set, to avoid the use of an iterator * Returns an element of the set **/ MemberInfo get() raises (sensei::middleware::domains::MemberStateException); /** * Returns the contents of the set */ MemberInfoList toArray() raises (sensei::middleware::domains::MemberStateException); }; /***********************************************************************/ /************************* SET GROUP HANDLER CHANGED MESSAGE ***********/ /***********************************************************************/ /** * Message sent after an update on the set */ valuetype SetMemberInfoChangedMessage : DomainMessage { public MemberInfo info; public boolean add; }; /***********************************************************************/ /************************* SET STATE **********************************/ /***********************************************************************/ valuetype SetMemberInfoState : State { public sequence<MemberInfo> members; }; }; }; }; #endif