diff options
author | stanleyk <stanleyk@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2013-02-05 21:11:03 +0000 |
---|---|---|
committer | stanleyk <stanleyk@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2013-02-05 21:11:03 +0000 |
commit | 5e030faf84086ab02059fcbcc3faed224bd57b95 (patch) | |
tree | 3a62df45ac6ccf599fb07cf6a03d672456ce2e3d /TAO/orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Persistent_Naming_Context.h | |
parent | 9d296f7fa51116ff7040ecb2ad18612cd94b5fd1 (diff) | |
download | ATCD-5e030faf84086ab02059fcbcc3faed224bd57b95.tar.gz |
Merge in OCI_Reliability_Enhancements branch.
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Persistent_Naming_Context.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Persistent_Naming_Context.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Persistent_Naming_Context.h b/TAO/orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Persistent_Naming_Context.h new file mode 100644 index 00000000000..1303c78daae --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Naming/FaultTolerant/FT_Persistent_Naming_Context.h @@ -0,0 +1,75 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file FT_Persistent_Naming_Context.h + * + * $Id$ + * + * @author Kevin Stanley <stanleyk@ociweb.com> + */ +//============================================================================= + + +#ifndef TAO_FT_PERSISTENT_NAMING_CONTEXT_H +#define TAO_FT_PERSISTENT_NAMING_CONTEXT_H +#include /**/ "ace/pre.h" + +#include "orbsvcs/Naming/Persistent_Naming_Context.h" +#include "orbsvcs/Naming/FaultTolerant/ftnaming_export.h" +#include "orbsvcs/orbsvcs/PortableGroupC.h" +#include "orbsvcs/Naming/FaultTolerant/FT_Naming_Manager.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_FT_Persistent_Naming_Context + * + * @brief This class specializes the TAO_Persistent_Naming_Context + * 'ConcreteImplementor' in the Bridge pattern architecture of the + * CosNaming::NamingContext implementation. + * + */ +class TAO_FtNaming_Export TAO_FT_Persistent_Naming_Context : + public TAO_Persistent_Naming_Context +{ +public: + /// Underlying data structure - typedef for ease of use. + typedef TAO_Persistent_Naming_Context::HASH_MAP HASH_MAP; + + // = Initialization and termination methods. + + /** + * Constructor that takes in preallocated data structure and takes + * ownership of it. Derived class from TAO_Persistent_Naming_Context + * provides specialization of the resolve operation to support + * load balancing. + */ + TAO_FT_Persistent_Naming_Context (PortableServer::POA_ptr poa, + const char *poa_id, + TAO_Persistent_Context_Index *context_index, + HASH_MAP * map = 0, + ACE_UINT32 *counter = 0); + + /// Destructor. + virtual ~TAO_FT_Persistent_Naming_Context (void); + + /** + * Override the resolve operation to support load balancing using + * the object group manager and associated strategy. + */ + virtual CORBA::Object_ptr resolve (const CosNaming::Name &n); + + static void set_naming_manager_impl (TAO_FT_Naming_Manager *mgr_impl); + + bool is_object_group (const CORBA::Object_ptr obj) const; + +protected: + static TAO_FT_Naming_Manager *naming_manager_impl_; + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" +#endif /* TAO_FT_PERSISTENT_NAMING_CONTEXT_H */ |