📄 ft_replicationmanager.h
字号:
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound,
PortableGroup::InvalidProperty,
PortableGroup::UnsupportedProperty));
/**
* Return the properties currently in use by the given object
* group. These properties include those that were set dynamically,
* type-specific properties that weren't overridden, properties that
* were used when the Replica was created, and default properties
* that weren't overridden.
*/
virtual PortableGroup::Properties * get_properties (
PortableGroup::ObjectGroup_ptr object_group
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound));
//@}
/**
* @name FT::FTObjectGroupManager methods
*
* Methods required by the FT::FTObjectGroupManager
* interface.
*/
//@{
/// Create a member in an object group.
virtual PortableGroup::ObjectGroup_ptr create_member (
PortableGroup::ObjectGroup_ptr object_group,
const PortableGroup::Location & the_location,
const char * type_id,
const PortableGroup::Criteria & the_criteria
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound,
PortableGroup::MemberAlreadyPresent,
PortableGroup::NoFactory,
PortableGroup::ObjectNotCreated,
PortableGroup::InvalidCriteria,
PortableGroup::CannotMeetCriteria));
/// Add an existing object to the ObjectGroup.
virtual PortableGroup::ObjectGroup_ptr add_member (
PortableGroup::ObjectGroup_ptr object_group,
const PortableGroup::Location & the_location,
CORBA::Object_ptr member
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound,
PortableGroup::MemberAlreadyPresent,
PortableGroup::ObjectNotAdded));
/**
* Remove the member at a specific location from an
* ObjectGroup. Application created objects must be
* deleted by the application. Objects created by the
* infrastructure (replication manager) will be deleted by the
* infrastructure.
* For infrastructure-controlled membership: After the member
* is removed from the group the minumum number of members
* parameter will be checked and new members will be created
* as necessary (if possible.)
*/
virtual PortableGroup::ObjectGroup_ptr remove_member (
PortableGroup::ObjectGroup_ptr object_group,
const PortableGroup::Location & the_location
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound,
PortableGroup::MemberNotFound));
/// Return the locations of the members in the given ObjectGroup.
virtual PortableGroup::Locations * locations_of_members (
PortableGroup::ObjectGroup_ptr object_group
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound));
/// Return the locations of the members in the given ObjectGroup.
virtual PortableGroup::ObjectGroups * groups_at_location (
const PortableGroup::Location & the_location
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
/// Return the ObjectGroupId for the given ObjectGroup.
virtual PortableGroup::ObjectGroupId get_object_group_id (
PortableGroup::ObjectGroup_ptr object_group
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound));
/**
* Return an update the IOGR for an object group. If no changes have
* been made in the group the return value will be the same as the object_group
* parameter.
*/
virtual PortableGroup::ObjectGroup_ptr get_object_group_ref (
PortableGroup::ObjectGroup_ptr object_group
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound));
/**
* TAO-specific extension.
* Return the ObjectGroup reference for the given ObjectGroupId.
*/
virtual PortableGroup::ObjectGroup_ptr get_object_group_ref_from_id (
PortableGroup::ObjectGroupId group_id
ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((
CORBA::SystemException
, PortableGroup::ObjectGroupNotFound
));
/**
* Return the reference corresponding to the Replica of a given
* ObjectGroup at the given location.
*/
virtual CORBA::Object_ptr get_member_ref (
PortableGroup::ObjectGroup_ptr object_group,
const PortableGroup::Location & loc
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectGroupNotFound,
PortableGroup::MemberNotFound));
/// Sets the primary member of a group.
virtual PortableGroup::ObjectGroup_ptr set_primary_member (
PortableGroup::ObjectGroup_ptr object_group,
const PortableGroup::Location & the_location
ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((
CORBA::SystemException
, PortableGroup::ObjectGroupNotFound
, PortableGroup::MemberNotFound
, FT::PrimaryNotSet
, FT::BadReplicationStyle
));
//@}
/**
* @name PortableGroup::GenericFactory methods
*
* Methods required by the PortableGroup::GenericFactory interface.
*/
//@{
/**
* Create an object of the specified type that adheres to the
* restrictions defined by the provided Criteria. The out
* FactoryCreationId parameter may be passed to the delete_object()
* method to delete the object.
*
* Infrastructure controlled membership: The initial number of members
* property will be honored by creating new members and adding them to
* the group.
*/
virtual CORBA::Object_ptr create_object (
const char * type_id,
const PortableGroup::Criteria & the_criteria,
PortableGroup::GenericFactory::FactoryCreationId_out
factory_creation_id
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::NoFactory,
PortableGroup::ObjectNotCreated,
PortableGroup::InvalidCriteria,
PortableGroup::InvalidProperty,
PortableGroup::CannotMeetCriteria));
/**
* Delete the object group corresponding to the provided
* FactoryCreationId. For infratructure-controlled membership
* all members will be deleted. For application-controlled membership
* the application is responsible for deleting group members.
*/
virtual void delete_object (
const PortableGroup::GenericFactory::FactoryCreationId &
factory_creation_id
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
PortableGroup::ObjectNotFound));
//@}
/////////////////////////
// Implementation methods
private:
/**
* Write this factory's IOR to a file
*/
int write_ior (void);
/// Registers the Fault Notifier with the Replication Manager.
void register_fault_notifier_i (
FT::FaultNotifier_ptr fault_notifier
ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((
CORBA::SystemException
));
////////////////
// Forbidden methods
FT_ReplicationManager (const FT_ReplicationManager & rhs);
FT_ReplicationManager & operator = (const FT_ReplicationManager & rhs);
///////////////
// Data Members
private:
/// The orb
CORBA::ORB_var orb_;
/// The POA.
PortableServer::POA_var poa_;
/// A file to which the factory's IOR should be written.
const char * ior_output_file_;
/// A name to be used to register the factory with the name service.
const char * ns_name_;
CosNaming::NamingContext_var naming_context_;
CosNaming::Name this_name_;
/// Our object reference.
FT::ReplicationManager_var replication_manager_ref_;
/// A human-readable string to identify this Replication Manager.
ACE_CString identity_;
/// an object that manages a collection of object groups
TAO::PG_Group_Factory group_factory_;
/// an object that manages default and type_id related properties
TAO::PG_Properties_Support properties_support_;
/// The fault notifier.
FT::FaultNotifier_var fault_notifier_;
/// set by command line -f option
const char * fault_notifier_ior_string_;
/// The fault consumer.
TAO::FT_FaultConsumer fault_consumer_;
/// The factory registry
TAO::PG_FactoryRegistry factory_registry_;
/// Quit flag.
int quit_;
};
} // namespace TAO
#include /**/ "ace/post.h"
#endif /* FT_REPLICATION_MANAGER_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -