/**
* 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