diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/FTRT_GroupManager.idl')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/FTRT_GroupManager.idl | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FTRT_GroupManager.idl b/TAO/orbsvcs/orbsvcs/FTRT_GroupManager.idl new file mode 100644 index 00000000000..950ee0e0b3a --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/FTRT_GroupManager.idl @@ -0,0 +1,71 @@ +// -*- IDL -*- + +//============================================================================= +/** + * @file FTRT_GroupManager.idl + * + * $Id$ + * + * @author Huang-Ming Huang + */ +//============================================================================= + +#ifndef TAO_FTRT_GROUPMANAGER_IDL +#define TAO_FTRT_GROUPMANAGER_IDL + +#include "orbsvcs/RtecEventChannelAdmin.idl" +#include "orb.idl" +#include "orbsvcs/CosNaming.idl" +#include "FTRT.idl" + +module FTRT +{ + typedef CosNaming::Name Location; + + interface FaultListener { + /// called by the replica which detect the loss of connection with its + /// predecessor to the primary + oneway void replica_crashed(in Location the_location); + }; + + interface ObjectGroupManager; + + struct ManagerInfo { + Location the_location; + ObjectGroupManager ior; + }; + + exception PredecessorUnreachable {}; + + typedef sequence<ManagerInfo> ManagerInfoList; + exception InvalidState{}; + + interface ObjectGroupManager : FaultListener { + boolean start(in FaultListener listener, + out Location the_location); + + void create_group(in ManagerInfoList info_list, + in unsigned long object_group_ref_version) + raises(PredecessorUnreachable); + + /// called by a newly created replica to the primary + // for requesting for joining a object group + oneway void join_group(in ManagerInfo info); + + /// called by primary to replicas + /// for adding a new member to the group + void add_member(in ManagerInfo info, + in unsigned long object_group_ref_version); + + /// called by the primary to backups for deleting a member from + /// the group + oneway void remove_member(in Location crashed_location, + in unsigned long object_group_ref_version); + + void set_state(in State stat) + raises (InvalidState); + + }; +}; + +#endif |