summaryrefslogtreecommitdiff
path: root/TAO/tao/POA.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/POA.h')
-rw-r--r--TAO/tao/POA.h930
1 files changed, 0 insertions, 930 deletions
diff --git a/TAO/tao/POA.h b/TAO/tao/POA.h
deleted file mode 100644
index 5f63f0b2e4f..00000000000
--- a/TAO/tao/POA.h
+++ /dev/null
@@ -1,930 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO
-//
-// = FILENAME
-// POA.h
-//
-// = DESCRIPTION
-// POA
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
-
-#if !defined (POA_H)
-#define POA_H
-
-// CORBA
-#include "tao/corba.h"
-
-// Stubs
-#include "tao/POAC.h"
-
-// Servant
-#include "tao/Servant_Base.h"
-
-// Skeletons
-#include "tao/POAS.h"
-
-// String
-#include "ace/SString.h"
-
-// Map
-#include "ace/Hash_Map_Manager.h"
-
-// Vector
-#include "ace/Containers.h"
-
-// Locking
-#include "ace/Synch.h"
-
-// Active Object Table
-#include "tao/Object_Table.h"
-
-class TAO_POA;
-class TAO_POA_Manager;
-
-class TAO_Export TAO_Thread_Policy : public POA_PortableServer::ThreadPolicy
-{
-public:
- TAO_Thread_Policy (PortableServer::ThreadPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Thread_Policy (const TAO_Thread_Policy &new_policy);
-
- virtual PortableServer::ThreadPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::ThreadPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_Lifespan_Policy : public POA_PortableServer::LifespanPolicy
-{
-public:
- TAO_Lifespan_Policy (PortableServer::LifespanPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Lifespan_Policy (const TAO_Lifespan_Policy &rhs);
-
- virtual PortableServer::LifespanPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::LifespanPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_Id_Uniqueness_Policy : public POA_PortableServer::IdUniquenessPolicy
-{
-public:
- TAO_Id_Uniqueness_Policy (PortableServer::IdUniquenessPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Id_Uniqueness_Policy (const TAO_Id_Uniqueness_Policy &rhs);
-
- virtual PortableServer::IdUniquenessPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::IdUniquenessPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_Id_Assignment_Policy : public POA_PortableServer::IdAssignmentPolicy
-{
-public:
- TAO_Id_Assignment_Policy (PortableServer::IdAssignmentPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Id_Assignment_Policy (const TAO_Id_Assignment_Policy &rhs);
-
- virtual PortableServer::IdAssignmentPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::IdAssignmentPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_Implicit_Activation_Policy : public POA_PortableServer::ImplicitActivationPolicy
-{
-public:
- TAO_Implicit_Activation_Policy (PortableServer::ImplicitActivationPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Implicit_Activation_Policy (const TAO_Implicit_Activation_Policy &rhs);
-
- virtual PortableServer::ImplicitActivationPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::ImplicitActivationPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_Servant_Retention_Policy : public POA_PortableServer::ServantRetentionPolicy
-{
-public:
- TAO_Servant_Retention_Policy (PortableServer::ServantRetentionPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Servant_Retention_Policy (const TAO_Servant_Retention_Policy &rhs);
-
- virtual PortableServer::ServantRetentionPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::ServantRetentionPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_Request_Processing_Policy : public POA_PortableServer::RequestProcessingPolicy
-{
-public:
- TAO_Request_Processing_Policy (PortableServer::RequestProcessingPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Request_Processing_Policy (const TAO_Request_Processing_Policy &rhs);
-
- virtual PortableServer::RequestProcessingPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::RequestProcessingPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-// **************************************************
-//
-// TAO spcific POA locking policy (non-standard)
-//
-// **************************************************
-
-class TAO_Export TAO_Synchronization_Policy : public POA_PortableServer::SynchronizationPolicy
-{
-public:
- TAO_Synchronization_Policy (PortableServer::SynchronizationPolicyValue value,
- PortableServer::POA_ptr poa);
-
- TAO_Synchronization_Policy (const TAO_Synchronization_Policy &rhs);
-
- virtual PortableServer::SynchronizationPolicyValue value (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Policy_ptr copy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::PolicyType policy_type (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
- PortableServer::SynchronizationPolicyValue value_;
-
- PortableServer::POA_var poa_;
-};
-
-class TAO_Export TAO_POA_Policies
-{
-public:
-
- TAO_POA_Policies (void);
-
- virtual PortableServer::ThreadPolicyValue thread (void) const;
- virtual void thread (PortableServer::ThreadPolicyValue value);
-
- virtual PortableServer::LifespanPolicyValue lifespan (void) const;
- virtual void lifespan (PortableServer::LifespanPolicyValue value);
-
- virtual PortableServer::IdUniquenessPolicyValue id_uniqueness (void) const;
- virtual void id_uniqueness (PortableServer::IdUniquenessPolicyValue value);
-
- virtual PortableServer::IdAssignmentPolicyValue id_assignment (void) const;
- virtual void id_assignment (PortableServer::IdAssignmentPolicyValue value);
-
- virtual PortableServer::ImplicitActivationPolicyValue implicit_activation (void) const;
- virtual void implicit_activation (PortableServer::ImplicitActivationPolicyValue value);
-
- virtual PortableServer::ServantRetentionPolicyValue servant_retention (void) const;
- virtual void servant_retention (PortableServer::ServantRetentionPolicyValue value);
-
- virtual PortableServer::RequestProcessingPolicyValue request_processing (void) const;
- virtual void request_processing (PortableServer::RequestProcessingPolicyValue value);
-
- // **************************************************
- //
- // TAO spcific POA locking policy (non-standard)
- //
- // **************************************************
-
- virtual PortableServer::SynchronizationPolicyValue synchronization (void) const;
- virtual void synchronization (PortableServer::SynchronizationPolicyValue value);
-
- virtual void parse_policies (const CORBA::PolicyList &policies,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
-
- virtual void parse_policy (const CORBA::Policy_ptr policy,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual int validity_check (void);
-
- PortableServer::ThreadPolicyValue thread_;
-
- PortableServer::LifespanPolicyValue lifespan_;
-
- PortableServer::IdUniquenessPolicyValue id_uniqueness_;
-
- PortableServer::IdAssignmentPolicyValue id_assignment_;
-
- PortableServer::ImplicitActivationPolicyValue implicit_activation_;
-
- PortableServer::ServantRetentionPolicyValue servant_retention_;
-
- PortableServer::RequestProcessingPolicyValue request_processing_;
-
- // **************************************************
- //
- // TAO spcific POA locking policy (non-standard)
- //
- // **************************************************
-
- PortableServer::SynchronizationPolicyValue synchronization_;
-};
-
-class TAO_Temporary_Creation_Time;
-
-class TAO_Creation_Time
-{
-public:
-
- TAO_Creation_Time (const ACE_Time_Value &creation_time);
-
- TAO_Creation_Time (void);
-
- virtual void creation_time (const void *creation_time);
-
- virtual const void *creation_time (void) const;
-
- static int creation_time_length (void);
-
- int operator== (const TAO_Creation_Time &rhs) const;
-
- int operator!= (const TAO_Creation_Time &rhs) const;
-
- int operator== (const TAO_Temporary_Creation_Time &rhs) const;
-
- int operator!= (const TAO_Temporary_Creation_Time &rhs) const;
-
-private:
-
- // 32 bit ulong requires 8 octets
- static const int max_space_required_for_two_ulong_to_hex;
-
- // Timestamp buffer
- char time_stamp_[(8 * 2) + 1];
-
-};
-
-// Special creation time only useful in the lifetime of the upcall
-class TAO_Temporary_Creation_Time
-{
-public:
-
- TAO_Temporary_Creation_Time (void);
-
- virtual void creation_time (const void *creation_time);
-
- int operator== (const TAO_Creation_Time &rhs) const;
-
- int operator!= (const TAO_Creation_Time &rhs) const;
-
-private:
-
- void *time_stamp_;
-};
-
-class TAO_POA_Current;
-
-class TAO_Export TAO_POA : public POA_PortableServer::POA
-{
-public:
-
- typedef ACE_CString String;
- //typedef std::string String;
-
- virtual PortableServer::POA_ptr create_POA (const char *adapter_name,
- PortableServer::POAManager_ptr poa_manager,
- const CORBA::PolicyList &policies,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr find_POA (const char *adapter_name,
- CORBA::Boolean activate_it,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy (CORBA::Boolean etherealize_objects,
- CORBA::Boolean wait_for_completion,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ThreadPolicy_ptr create_thread_policy (PortableServer::ThreadPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::LifespanPolicy_ptr create_lifespan_policy (PortableServer::LifespanPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::IdUniquenessPolicy_ptr create_id_uniqueness_policy (PortableServer::IdUniquenessPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::IdAssignmentPolicy_ptr create_id_assignment_policy (PortableServer::IdAssignmentPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ImplicitActivationPolicy_ptr create_implicit_activation_policy (PortableServer::ImplicitActivationPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ServantRetentionPolicy_ptr create_servant_retention_policy (PortableServer::ServantRetentionPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::RequestProcessingPolicy_ptr create_request_processing_policy (PortableServer::RequestProcessingPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- // **************************************************
- //
- // TAO spcific POA locking policy (non-standard)
- //
- // **************************************************
-
- virtual PortableServer::SynchronizationPolicy_ptr create_synchronization_policy (PortableServer::SynchronizationPolicyValue value,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::String the_name (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POA_ptr the_parent (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::POAManager_ptr the_POAManager (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::AdapterActivator_ptr the_activator (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void the_activator (PortableServer::AdapterActivator_ptr adapter_activator,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ServantManager_ptr get_servant_manager (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void set_servant_manager (PortableServer::ServantManager_ptr imgr,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant get_servant (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void set_servant (PortableServer::Servant servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ObjectId *activate_object (PortableServer::Servant p_servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void activate_object_with_id (const PortableServer::ObjectId &id,
- PortableServer::Servant p_servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void deactivate_object (const PortableServer::ObjectId &oid,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Object_ptr create_reference (const char *intf,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Object_ptr create_reference_with_id (const PortableServer::ObjectId &oid,
- const char *intf,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
- virtual PortableServer::ObjectId *servant_to_id (PortableServer::Servant p_servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Object_ptr servant_to_reference (PortableServer::Servant p_servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant reference_to_servant (CORBA::Object_ptr reference,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ObjectId *reference_to_id (CORBA::Object_ptr reference,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant id_to_servant (const PortableServer::ObjectId &oid,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Object_ptr id_to_reference (const PortableServer::ObjectId &oid,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void forward_object (const PortableServer::ObjectId &oid,
- CORBA::Object_ptr forward_to,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- // Utility functions for the other
- static void encode_sequence_to_string (CORBA::String &str,
- const TAO_Unbounded_Sequence<CORBA::Octet> &seq);
- static void decode_string_to_sequence (TAO_Unbounded_Sequence<CORBA::Octet> &seq,
- CORBA::String str);
-
- static CORBA::String ObjectId_to_string (const PortableServer::ObjectId &id);
-
- static CORBA::WString ObjectId_to_wstring (const PortableServer::ObjectId &id);
-
- static PortableServer::ObjectId *string_to_ObjectId (const char *id);
-
- static PortableServer::ObjectId *string_to_ObjectId (const char *string,
- int size);
-
- static PortableServer::ObjectId *wstring_to_ObjectId (const CORBA::WChar *id);
-
- TAO_POA (const String &adapter_name,
- TAO_POA_Manager &poa_manager,
- const TAO_POA_Policies &policies,
- TAO_POA *parent,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- TAO_POA (const String &adapter_name,
- TAO_POA_Manager &poa_manager,
- const TAO_POA_Policies &policies,
- TAO_POA *parent,
- TAO_Object_Table &active_object_map,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *clone (const String &adapter_name,
- TAO_POA_Manager &poa_manager,
- const TAO_POA_Policies &policies,
- TAO_POA *parent,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *clone (const String &adapter_name,
- TAO_POA_Manager &poa_manager,
- const TAO_POA_Policies &policies,
- TAO_POA *parent,
- TAO_Object_Table &active_object_map,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual ~TAO_POA (void);
-
- virtual void dispatch_servant (const TAO_ObjectKey &key,
- CORBA::ServerRequest &req,
- void *context,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual int locate_servant (const TAO_ObjectKey &key,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant find_servant (const TAO_ObjectKey &key,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- static char name_separator (void);
-
- static char id_separator (void);
-
- static CORBA::ULong name_separator_length (void);
-
- static CORBA::ULong id_separator_length (void);
-
-protected:
-
- virtual TAO_POA *create_POA (const String &adapter_name,
- TAO_POA_Manager &poa_manager,
- const TAO_POA_Policies &policies,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *create_POA_i (const String &adapter_name,
- TAO_POA_Manager &poa_manager,
- const TAO_POA_Policies &policies,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *find_POA (const String &adapter_name,
- CORBA::Boolean activate_it,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *find_POA_i (const String &adapter_name,
- CORBA::Boolean activate_it,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *find_POA_i_optimized (const String &adapter_name,
- CORBA::Boolean activate_it,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void destroy_i (CORBA::Boolean etherealize_objects,
- CORBA::Boolean wait_for_completion,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ServantManager_ptr get_servant_manager_i (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void set_servant_manager_i (PortableServer::ServantManager_ptr imgr,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant get_servant_i (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void set_servant_i (PortableServer::Servant servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ObjectId *activate_object_i (PortableServer::Servant p_servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void activate_object_with_id_i (const PortableServer::ObjectId &id,
- PortableServer::Servant p_servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void deactivate_object_i (const PortableServer::ObjectId &oid,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Object_ptr create_reference_i (const char *intf,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ObjectId *servant_to_id_i (PortableServer::Servant servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant id_to_servant_i (const PortableServer::ObjectId &oid,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Object_ptr id_to_reference_i (const PortableServer::ObjectId &oid,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void forward_object_i (const PortableServer::ObjectId &oid,
- CORBA::Object_ptr forward_to,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual ACE_Lock &lock (void);
-
- virtual TAO_POA_Policies &policies (void);
-
- virtual TAO_Object_Table &active_object_map (void);
-
- virtual void delete_child (const String &child,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void delete_child_i (const String &child,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual String complete_name (void);
-
- virtual void set_complete_name (void);
-
- virtual int leaf_poa_name (const String &adapter_name,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void parse_poa_name (const TAO_POA::String &adapter_name,
- TAO_POA::String &topmost_poa_name,
- TAO_POA::String &tail_poa_name,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::ObjectId *create_object_id (void);
-
- virtual TAO_ObjectKey *create_object_key (const PortableServer::ObjectId &id);
-
- virtual int is_poa_generated_id (const PortableServer::ObjectId &id);
-
- virtual int is_poa_generated_key (const TAO_ObjectKey &key);
-
- virtual int parse_key (const TAO_ObjectKey &key,
- String &poa_name,
- PortableServer::ObjectId &id,
- CORBA::Boolean &persistent,
- TAO_Temporary_Creation_Time &poa_creation_time);
-
- virtual int rfind (const TAO_ObjectKey &key,
- char c,
- int pos = TAO_POA::String::npos) const;
-
- // Should really be protected, but some compilers complain
-public:
- enum LOCATION_RESULT
- {
- FOUND,
- DEFAULT_SERVANT,
- SERVANT_MANAGER,
- NOT_FOUND
- };
-
-protected:
- virtual LOCATION_RESULT locate_servant_i (const TAO_ObjectKey &key,
- PortableServer::Servant &servant,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual PortableServer::Servant locate_poa_and_servant_i (const TAO_ObjectKey &key,
- const char *operation,
- PortableServer::ObjectId &id,
- TAO_POA *&poa_impl,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual TAO_POA *locate_poa_i (const TAO_ObjectKey &key,
- PortableServer::ObjectId &id,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void dispatch_servant_i (const TAO_ObjectKey &key,
- CORBA::ServerRequest &req,
- void *context,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void pre_invoke (const TAO_ObjectKey &key,
- const PortableServer::ObjectId &id,
- PortableServer::Servant servant,
- TAO_POA_Current *poa_current,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void post_invoke (PortableServer::Servant servant,
- const char *operation,
- TAO_POA_Current *poa_current,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual CORBA::Boolean persistent (void);
-
- virtual const TAO_Creation_Time &creation_time (void);
-
- virtual char object_key_type (void);
-
- static char persistent_key_type (void);
-
- static char transient_key_type (void);
-
- static CORBA::ULong object_key_type_length (void);
-
- virtual void create_internal_lock (void);
-
- String name_;
-
- String complete_name_;
-
- TAO_POA_Manager &poa_manager_;
-
- TAO_POA_Policies policies_;
-
- TAO_POA *parent_;
-
- TAO_Object_Table *active_object_map_;
-
- int delete_active_object_map_;
-
- PortableServer::AdapterActivator_var adapter_activator_;
-
- PortableServer::ServantActivator_var servant_activator_;
-
- PortableServer::ServantLocator_var servant_locator_;
-
- PortableServer::Servant default_servant_;
-
- typedef ACE_Hash_Map_Manager<String, TAO_POA *, ACE_Null_Mutex> CHILDREN;
-
- CHILDREN children_;
-
- ACE_Lock *lock_;
-
- int closing_down_;
-
- CORBA::ULong counter_;
-
- TAO_Creation_Time creation_time_;
-
- static const int max_space_required_for_ulong;
-};
-
-class TAO_Export TAO_POA_Manager : public POA_PortableServer::POAManager
-{
- friend class TAO_POA;
-
-public:
- enum Processing_State
- {
- ACTIVE,
- DISCARDING,
- HOLDING,
- INACTIVE,
- UNKNOWN
- };
-
- virtual void activate (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void hold_requests (CORBA::Boolean wait_for_completion,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void discard_requests (CORBA::Boolean wait_for_completion,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void deactivate (CORBA::Boolean etherealize_objects,
- CORBA::Boolean wait_for_completion,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- TAO_POA_Manager (void);
-
- virtual TAO_POA_Manager *clone (void);
-
- virtual ~TAO_POA_Manager (void);
-
- virtual Processing_State state (CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
-protected:
-
- virtual ACE_Lock &lock (void);
-
- virtual void remove_poa (TAO_POA *poa,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void remove_poa_i (TAO_POA *poa,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void register_poa (TAO_POA *poa,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- virtual void register_poa_i (TAO_POA *poa,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-
- Processing_State state_;
-
- int closing_down_;
-
- ACE_Lock *lock_;
-
- typedef ACE_Unbounded_Set<TAO_POA *> POA_COLLECTION;
-
- POA_COLLECTION poa_collection_;
-};
-
-class TAO_Export TAO_Adapter_Activator : public POA_PortableServer::AdapterActivator
-{
-public:
-
- virtual CORBA::Boolean unknown_adapter (PortableServer::POA_ptr parent,
- const char *name,
- CORBA_Environment &_env = CORBA_Environment::default_environment ());
-};
-
-class TAO_Export TAO_POA_Current : public POA_PortableServer::Current
-{
- // = TITLE
- //
- // Implementation of the PortableServer::Current object.
- //
- // = DESCRIPTION
- //
- // Objects of this class hold state information regarding the
- // current POA invocation. Savvy readers will notice that this
- // contains substantially more methods than the POA spec shows; they
- // exist because the ORB either (a) needs them or (b) finds them
- // useful for implementing a more efficient ORB.
- //
- // The intent is that instances of this class are held in
- // Thread-Specific Storage so that upcalls can get context
- // information regarding their invocation. The POA itself must
- // insure that all <set_*> operations are performed in the execution
- // thread so that the proper <TAO_POA_Current> pointer is obtained
- // from TSS.
-
-public:
- // = Specification-mandated methods
-
- virtual PortableServer::POA_ptr get_POA (CORBA_Environment &_env = CORBA_Environment::default_environment ());
- // Return pointer to the invoking POA. Raises the
- // <CORBA::NoContext> exception.
-
- virtual PortableServer::ObjectId *get_object_id (CORBA_Environment &_env = CORBA_Environment::default_environment ());
- // Return pointer to the object id through which this was invoked.
- // This may be necessary in cases where a <Servant> is serving under
- // the guise of multiple object ids. This has _out semantics Raises
- // the <CORBA::NoContext> exception.
-
- // = TAO Extensions
-
- virtual void clear (void);
- // Clear any prior settings made. This will make things which can
- // throw the <CORBA::NoContext> exception raise it if invoked
- // without a corresponding <set_*> operation.
-
- virtual int context_is_valid (void);
- // Returns non-zero if the context is valid, i.e., if it would be
- // impossible for a <CORBA::NoContext> exception to be raised.
-
- virtual void POA_impl (TAO_POA *impl);
- // Set the POA implementation.
-
- virtual TAO_POA *POA_impl (void) const;
- // Get the POA imeplemantation
-
- virtual void object_id (const PortableServer::ObjectId &id);
- // Set the object ID.
-
- virtual const PortableServer::ObjectId &object_id (void) const;
- // Get the object ID.
-
- virtual void object_key (const TAO_ObjectKey &key);
- // Set the object key.
-
- virtual const TAO_ObjectKey &object_key (void) const;
- // Get the object key.
-
- virtual void servant (PortableServer::Servant servant);
- // Set the servant for the current upcall.
-
- virtual PortableServer::Servant servant (void) const;
- // Get the servant for the current upcall.
-
- virtual int in_upcall (void) const;
- // Get whether we're in an upcall (non-zero is yes).
-
- virtual PortableServer::ServantLocator::Cookie locator_cookie (void) const;
- // Get the Servant Locator's cookie
-
- virtual void locator_cookie (PortableServer::ServantLocator::Cookie cookie);
- // Set the Servant Locator's cookie
-
- TAO_POA_Current (void);
- // Constructor
-
- TAO_POA_Current (TAO_POA *impl,
- const TAO_ObjectKey &key,
- const PortableServer::ObjectId &id,
- PortableServer::Servant servant);
- // Convenience constructor combining construction & initialization.
-
- virtual ~TAO_POA_Current (void);
- // Destructor
-
-private:
- TAO_POA *poa_impl_;
- // The POA implementation invoking an upcall
-
- const PortableServer::ObjectId *object_id_;
- // The object ID of the current context.
-
- const TAO_ObjectKey *object_key_;
- // The object key of the current context.
-
- PortableServer::ServantLocator::Cookie cookie_;
- // Servant Locator's cookie
-
- PortableServer::Servant servant_;
- // The servant for the current upcall.
-
- // = Hidden because we don't allow these
- TAO_POA_Current (const TAO_POA_Current &);
- void operator= (const TAO_POA_Current &);
-};
-
-#if defined (__ACE_INLINE__)
-# include "tao/POA.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* POA_H */