#ifndef _PortableGroup_IDL_ #define _PortableGroup_IDL_ #include “CosNaming.idl’’ // from 98-10-19.idl #include “IOP.idl’’ // from 98-03-01.idl #include “GIOP.idl’’ // from 98-03-01.idl #include “CORBA.idl’’ // from 98-03-01.idl #pragma prefix “omg.org” module PortableGroup { // Specification for Interoperable Object Group References typedef string DomainId; typedef unsigned long long ObjectGroupId; typedef unsigned long ObjectGroupRefVersion; struct TagGroupTaggedComponent { // tag = TAG_PG_GROUP; GIOP::Version version; DomainId domain_id; ObjectGroupId object_group_id; ObjectGroupRefVersion object_group_ref_version; }; // Specification of Common Types and Exceptions for Group Management interface GenericFactory; typedef CORBA::RepositoryId TypeId; typedef Object ObjectGroup; typedef string Name; typedef any Value; struct Property { Name nam; Value val; }; typedef sequence Properties; typedef CosNaming::Name Location; typedef sequence Locations; typedef Properties Criteria; struct FactoryInfo { GenericFactory the_factory; Location the_location; Criteria the_criteria; }; typedef sequence FactoryInfos; typedef unsigned short MembershipStyleValue; const MembershipStyleValue MEMB_APP_CTRL = 0; const MembershipStyleValue MEMB_INF_CTRL = 1; typedef FactoryInfos FactoriesValue; exception InterfaceNotFound {}; exception ObjectGroupNotFound {}; exception MemberNotFound {}; exception ObjectNotFound {}; exception MemberAlreadyPresent {}; exception ObjectNotCreated {}; exception ObjectNotAdded {}; exception UnsupportedProperty { Name nam; }; exception InvalidPropertyValue { Name nam; Value val; }; exception NoFactory { Location the_location; TypeId type_id; }; exception InvalidCriteria { Criteria invalid_criteria; }; exception CannotMeetCriteria { Criteria unmet_criteria; }; // Specification of the PropertyManager interface interface PropertyManager { void set_default_properties (in Properties props) raises (InvalidPropertyValue, UnsupportedProperty); Properties get_default_properties(); void remove_default_properties (in Properties props) raises (InvalidPropertyValue, UnsupportedProperty); void set_type_properties (in TypeId type_id, in Properties overrides) raises (InvalidPropertyValue, UnsupportedProperty); Properties get_type_properties (in TypeId type_id); void remove_type_properties (in TypeId type_id, in Properties props) raises (InvalidPropertyValue, UnsupportedProperty); void set_properties_dynamically (in ObjectGroup object_group, in Properties overrides) raises (ObjectGroupNotFound, InvalidPropertyValue, UnsupportedProperty); Properties get_properties (in ObjectGroup object_group) raises (ObjectGroupNotFound); }; // Specification of the ObjectGroupManager interface interface ObjectGroupManager { ObjectGroup create_member (in ObjectGroup object_group, in Location the_location, in TypeId type_id, in Criteria the_criteria) raises (ObjectGroupNotFound, MemberAlreadyPresent, NoFactory, ObjectNotCreated, InvalidCriteria, CannotMeetCriteria); ObjectGroup add_member (in ObjectGroup object_group, in Location the_location, in Object member) raises (ObjectGroupNotFound, MemberAlreadyPresent, ObjectNotAdded); ObjectGroup remove_member (in ObjectGroup object_group, in Location the_location) raises (ObjectGroupNotFound, MemberNotFound); Locations locations_of_members (in ObjectGroup object_group) raises (ObjectGroupNotFound); ObjectGroupId get_object_group_id (in ObjectGroup object_group) raises (ObjectGroupNotFound); ObjectGroup get_object_group_ref (in ObjectGroup object_group) raises (ObjectGroupNotFound); Object get_member_ref (in ObjectGroup object_group, in Location the_location) raises (ObjectGroupNotFound, MemberNotFound); }; // Specification of the GenericFactory interface interface GenericFactory { typedef any FactoryCreationId; Object create_object (in TypeId type_id, in Criteria the_criteria, out FactoryCreationId factory_creation_id) raises (NoFactory, ObjectNotCreated, InvalidCriteria, InvalidPropertyValue, CannotMeetCriteria); void delete_object (in FactoryCreationId factory_creation_id) raises (ObjectNotFound); }; }; #endif // for #ifndef _PortableGroup_IDL_ #ifndef _PortableState_IDL_ #define _PortableState_IDL_ #include “CosNaming.idl’’ // from 98-10-19.idl #include “IOP.idl’’ // from 98-03-01.idl #include “GIOP.idl’’ // from 98-03-01.idl #include “CORBA.idl’’ // from 98-03-01.idl #pragma prefix “omg.org” module PortableState { typedef sequence State; exception NoStateAvailable {}; exception InvalidState {}; // Specification of the Checkpointable interface interface Checkpointable { State get_state() raises (NoStateAvailable); void set_state (in State s) raises (InvalidState); }; }; #endif // for #ifndef _PortableState_IDL_ #ifndef _OnlineUpgrades_IDL_ #define _OnlineUpgrades_IDL_ #include “CosNaming.idl’’ // from 98-10-19.idl #include “IOP.idl’’ // from 98-03-01.idl #include “GIOP.idl’’ // from 98-03-01.idl #include “CORBA.idl’’ // from 98-03-01.idl #pragma prefix “omg.org” module OnlineUpgrades { // Specification of types for upgrade properties typedef boolean QuiescenceStyleValue; typedef long PauseIntervalValue; typedef long RemovalIntervalValue; // Specification of the GroupManager interface interface GroupManager : PortableGroup::PropertyManager, PortableGroup::ObjectGroupManager, PortableGroup::GenericFactory { void pause_member (in ObjectGroup object_group, in Location the_location) raises (MemberNotFound); ObjectGroup resume_member (in ObjectGroup object_group, in Location the_location) raises (MemberNotFound); }; // Specification of the UpgradeManager interface interface UpgradeManager { exception InvalidInterface {}; exception UnknownUpgradeId {}; void upgrade_object (in PortableGroup::ObjectGroup object_group, in PortableGroup::TypeId type_id, in PortableGroup::Location the_location, in PortableGroup::FactoryInfo the_factory, in boolean app_ctrl_commit) raises (PortableGroup::ObjectNotFound, InvalidInterface, PortableGroup::NoFactory, PortableGroup::ObjectNotCreated); void commit_upgrade (in PortableGroup::ObjectGroup object_group) raises (PortableGroup::ObjectGroupNotFound); void rollback_upgrade (in PortableGroup::ObjectGroup object_group) raises (PortableGroup::ObjectGroupNotFound); void revert_upgrade (in PortableGroup::ObjectGroup object_group, in PortableGroup::TypeId type_id, in PortableGroup::Location the_location, in PortableGroup::FactoryInfo the_factory) raises (PortableGroup::ObjectGroupNotFound, InvalidInterface, PortableGroup::NoFactory, PortableGroup::ObjectNotCreated); void i_am_ready (in unsigned long upgradeId, in boolean ready) raises (UnknownUpgradeId); }; // Specification of the Upgradeable interface that application objects // that are to be upgraded must inherit interface Upgradeable : PortableState::Checkpointable { void are_you_ready (in unsigned long upgradeId); void transform_and_set_state (in State s) raises (InvalidState); }; }; #endif // for #ifndef _OnlineUpgrades_IDL_