📄 ft_corba.idl
字号:
//FT_CORBA.idl,v 1.6 2003/12/22 01:44:38 wilson_d Exp
// FT.idl
#ifndef _FT_IDL_
#define _FT_IDL_
// The OMG file has been devided into several portions:
// FT_CORBA.idl
// FT_CORBA_ORB.idl
// FT_Detector.idl
// FT_Notifier.idl
// FT_Replica.idl
// The next include is TAO specific.
#include "orbsvcs/FT_CORBA_ORB.idl"
#define FT_USES_PORTABLE_GROUP
#ifdef FT_USES_PORTABLE_GROUP
# include "orbsvcs/PortableGroup.idl"
#else // FT_USES_PORTABLE_GROUP
#include "orbsvcs/CosNaming.idl" // 98-10-19.idl
#endif // FT_USES_PORTABLE_GROUP
#include "orbsvcs/CosNotification.idl" // from telecom/98-11-03.idl
#include "orbsvcs/CosNotifyFilter.idl"
#pragma prefix "omg.org"
module FT
{
/// Forward declarations
interface FaultNotifier;
typedef long ReplicationStyleValue;
const ReplicationStyleValue STATELESS = 0;
const ReplicationStyleValue COLD_PASSIVE = 1;
const ReplicationStyleValue WARM_PASSIVE = 2;
const ReplicationStyleValue ACTIVE = 3;
const ReplicationStyleValue ACTIVE_WITH_VOTING = 4;
const ReplicationStyleValue SEMI_ACTIVE = 5;
typedef long ConsistencyStyleValue;
const ConsistencyStyleValue CONS_APP_CTRL = 0;
const ConsistencyStyleValue CONS_INF_CTRL = 1;
typedef long FaultMonitoringStyleValue;
const FaultMonitoringStyleValue PULL = 0;
const FaultMonitoringStyleValue PUSH = 1;
const FaultMonitoringStyleValue NOT_MONITORED = 2;
typedef long FaultMonitoringGranularityValue;
const FaultMonitoringGranularityValue MEMB = 0;
const FaultMonitoringGranularityValue LOC = 1;
const FaultMonitoringGranularityValue LOC_AND_TYPE = 2;
struct FaultMonitoringIntervalAndTimeoutValue {
TimeBase::TimeT monitoring_interval;
TimeBase::TimeT timeout;
};
exception BadReplicationStyle {};
exception PrimaryNotSet {};
#ifdef FT_USES_PORTABLE_GROUP
/////////////////////////////////////////
// The following typedefs "import"
// definitions from the PortableGroup module
// definitions into the FT module.
// This is an interim step during the process
// of having FT depend on the commmon
// of PortableGroup module rather than defining
// everything itself.
// this typedef trick doesn't work for exceptions, so they must
// use the PortableGroup:: prefix
typedef PortableGroup::_TypeId _TypeId;
typedef PortableGroup::ObjectGroup ObjectGroup;
typedef PortableGroup::Name Name;
typedef PortableGroup::Value Value;
typedef PortableGroup::Property Property;
typedef PortableGroup::Properties Properties;
typedef PortableGroup::Location Location;
typedef PortableGroup::Locations Locations;
typedef PortableGroup::Criteria Criteria;
typedef PortableGroup::FactoryInfo FactoryInfo;
typedef PortableGroup::FactoryInfos FactoryInfos;
typedef PortableGroup::MembershipStyleValue MembershipStyleValue;
typedef PortableGroup::FactoriesValue FactoriesValue;
typedef PortableGroup::InitialNumberMembersValue InitialNumberMembersValue;
typedef PortableGroup::MinimumNumberMembersValue MinimumNumberMembersValue;
typedef PortableGroup::PropertyManager PropertyManager;
typedef PortableGroup::ObjectGroupManager ObjectGroupManager;
typedef PortableGroup::GenericFactory GenericFactory;
// Specification of FTObjectGroupManager Interface
// which ReplicationManager Inherits
interface FTObjectGroupManager : PortableGroup::ObjectGroupManager {
::PortableGroup::ObjectGroup set_primary_member(in ::PortableGroup::ObjectGroup object_group,
in ::PortableGroup::Location the_location)
raises(PortableGroup::ObjectGroupNotFound,
PortableGroup::MemberNotFound,
PrimaryNotSet,
BadReplicationStyle);
};
///////////////////////////////////////////////////
// names for properties used in Fault Tolerant CORBA
/// FT::ReplicationStyle
const string FT_REPLICATION_STYLE = "org.omg.ft.ReplicationStyle";
/// FT::ConsistencyStyle
const string FT_CONSISTENCY_STYLE = "org.omg.ft.ConsistencyStyle";
/// FT::MembershipStyle
const string FT_MEMBERSHIP_STYLE = PortableGroup::PG_MEMBERSHIP_STYLE;
const PortableGroup::MembershipStyleValue MEMB_APP_CTRL = PortableGroup::MEMB_APP_CTRL;
const PortableGroup::MembershipStyleValue MEMB_INF_CTRL = PortableGroup::MEMB_INF_CTRL;
/// FT::FaultMonitoringStyle
const string FT_FAULT_MONITORING_STYLE = "org.omg.ft.FaultMonitoringStyle";
/// FT::FaultMonitoringGranularity
const string FT_FAULT_MONITORING_GRANULARITY = "org.omg.ft.FaultMonitoringGranularity";
/// FT::InitialNumberMembers
const string FT_INITIAL_NUMBER_MEMBERS = PortableGroup::PG_INITIAL_NUMBER_MEMBERS;
/// FT::MinimumNumberMembers
const string FT_MINIMUM_NUMBER_MEMBERS = PortableGroup::PG_MINIMUM_NUMBER_MEMBERS;
/// Factories
const string FT_FACTORIES = PortableGroup::PG_FACTORIES;
/// FT::FaultMonitoringIntervalAndTimeou
const string FT_FAULT_MONITORING_INTERVAL_AND_TIMEOUT = "org.omg.ft.FaultMonitoringIntervalAndTimeout";
/// FT::CheckpointInterval
const string FT_CHECKPOINT_INTERVAL = "org.omg.ft.CheckpointInterval";
// end of property names from FT CORBA specification
///////////////////////////////////////////////////
#else // (not) FT_USES_PORTABLE_GROUP
interface GenericFactory;
/// Useful typedefs.
typedef CORBA::RepositoryId _TypeId;
typedef Object ObjectGroup;
typedef CosNaming::Name Name;
typedef any Value;
/**
* @struct Property
*
* @brief A property name and a value association.
*/
struct Property {
Name nam;
Value val;
};
/// Some mor euseful typedefs.
typedef sequence<Property> Properties;
typedef Name Location;
typedef sequence<Location> Locations;
typedef Properties Criteria;
/**
* @struct FactoryInfo
*
* @brief <@todo>
*
*/
struct FactoryInfo {
GenericFactory _factory;
Location the_location;
Criteria the_criteria;
};
typedef sequence<FactoryInfo> FactoryInfos;
typedef long ReplicationStyleValue;
const ReplicationStyleValue STATELESS = 0;
const ReplicationStyleValue COLD_PASSIVE = 1;
const ReplicationStyleValue WARM_PASSIVE = 2;
const ReplicationStyleValue ACTIVE = 3;
const ReplicationStyleValue ACTIVE_WITH_VOTING = 4;
typedef long MembershipStyleValue;
const MembershipStyleValue MEMB_APP_CTRL = 0;
const MembershipStyleValue MEMB_INF_CTRL = 1;
typedef long ConsistencyStyleValue;
const ConsistencyStyleValue CONS_APP_CTRL = 0;
const ConsistencyStyleValue CONS_INF_CTRL = 1;
typedef long FaultMonitoringStyleValue;
const FaultMonitoringStyleValue PULL = 0;
const FaultMonitoringStyleValue PUSH = 1;
const FaultMonitoringStyleValue NOT_MONITORED = 2;
typedef long FaultMonitoringGranularityValue;
const FaultMonitoringGranularityValue MEMB = 0;
const FaultMonitoringGranularityValue LOC = 1;
const FaultMonitoringGranularityValue LOC_AND_TYPE = 2;
typedef FactoryInfos FactoriesValue;
typedef unsigned short InitialNumberMembersValue;
typedef unsigned short MinimumNumberMembersValue;
struct FaultMonitoringIntervalAndTimeoutValue {
TimeBase::TimeT monitoring_interval;
TimeBase::TimeT timeout;
};
typedef TimeBase::TimeT CheckpointIntervalValue;
exception InterfaceNotFound {};
exception ObjectGroupNotFound {};
exception MemberNotFound {};
exception ObjectNotFound {};
exception MemberAlreadyPresent {};
exception BadReplicationStyle {};
exception ObjectNotCreated {};
exception ObjectNotAdded {};
exception PrimaryNotSet {};
exception UnsupportedProperty {
Name nam;
Value val;
};
exception InvalidProperty {
Name nam;
Value val; };
exception NoFactory {
Location the_location;
_TypeId type_id; };
exception InvalidCriteria {
Criteria invalid_criteria; };
exception CannotMeetCriteria {
Criteria unmet_criteria; };
// Specification of PropertyManager Interface
// which ReplicationManager Inherits
interface PropertyManager {
void set_default_properties(in Properties props)
raises (InvalidProperty, UnsupportedProperty);
Properties get_default_properties();
void remove_default_properties(in Properties props)
raises (InvalidProperty, UnsupportedProperty);
void set_type_properties(in _TypeId type_id,
in Properties overrides)
raises (InvalidProperty, UnsupportedProperty);
Properties get_type_properties(in _TypeId type_id);
void remove_type_properties(in _TypeId type_id,
in Properties props)
raises (InvalidProperty, UnsupportedProperty);
void set_properties_dynamically(in ObjectGroup object_group,
in Properties overrides)
raises(ObjectGroupNotFound, InvalidProperty, UnsupportedProperty);
Properties get_properties(in ObjectGroup object_group)
raises(ObjectGroupNotFound);
};
// Specification of ObjectGroupManager Interface
// which ReplicationManager Inherits
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);
ObjectGroup set_primary_member(in ObjectGroup object_group,
in Location the_location)
raises(ObjectGroupNotFound,
MemberNotFound,
PrimaryNotSet,
BadReplicationStyle);
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 loc)
raises(ObjectGroupNotFound, MemberNotFound);
};
// Specification of GenericFactory Interface
// which ReplicationManager Inherits and Application Objects Implement
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,
InvalidProperty,
CannotMeetCriteria);
void delete_object(in FactoryCreationId factory_creation_id)
raises (ObjectNotFound);
};
#endif // FT_USES_PORTABLE_GROUP
// Specifications for Fault Management moved to FT_Replica.idl
// Specification of FaultNotifier Interface: moved to FT_Notifier.idl
// Specifications for Logging and Recovery: moved to FT_Replica.idl
// Specifications for Replication Manager moved to FT_ReplicationManager.idl
};
#endif // for #ifndef _FT_IDL_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -