diff options
Diffstat (limited to 'TAO/CIAO/ciao/Container_Base.h')
-rw-r--r-- | TAO/CIAO/ciao/Container_Base.h | 114 |
1 files changed, 21 insertions, 93 deletions
diff --git a/TAO/CIAO/ciao/Container_Base.h b/TAO/CIAO/ciao/Container_Base.h index 325143f1dad..89f57e360b4 100644 --- a/TAO/CIAO/ciao/Container_Base.h +++ b/TAO/CIAO/ciao/Container_Base.h @@ -29,8 +29,6 @@ namespace CIAO { - class Servant_Activator; - /** * @class Container * @@ -42,25 +40,16 @@ namespace CIAO class CIAO_SERVER_Export Container { public: - enum OA_Type - { - Component, - Facet_Consumer - }; - Container (CORBA::ORB_ptr o); virtual ~Container (void) = 0; - /// Get component's POA. - /** - * This operation does *NOT* increase the reference count of the - * POA. Look at the const qualifier in the method. - */ - PortableServer::POA_ptr the_POA (void) const; + /// Get the containing POA. This operation does *NOT* + /// increase the reference count of the POA. + virtual PortableServer::POA_ptr _ciao_the_POA (void); /// Get a reference to the underlying ORB. - CORBA::ORB_ptr the_ORB (void) const; + virtual CORBA::ORB_ptr _ciao_the_ORB (void); /// Initialize the container with a name. virtual int init (const char *name = 0, @@ -85,27 +74,10 @@ namespace CIAO ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)) = 0; - // Uninstall a servant for component. - virtual void uninstall_component (::Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)) = 0; - - protected: CORBA::ORB_var orb_; - /// POA within which all the components in this container will be - /// activated. - PortableServer::POA_var component_poa_; - - /// POA within which all the facets and receptacles will be - /// activated. - /** - * Having two POA's allows us to associate different policies that - * are distinct from the component. - */ - PortableServer::POA_var facet_cons_poa_; + PortableServer::POA_var poa_; }; class Session_Container; @@ -114,10 +86,7 @@ namespace CIAO typedef ::PortableServer::Servant (*ServantFactory) (::Components::HomeExecutorBase_ptr p, ::CIAO::Session_Container *c -#if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT) - , CORBA::Environment & -#endif - ); + ACE_ENV_ARG_DECL_WITH_DEFAULTS); typedef ACE_Hash_Map_Manager_Ex<ACE_CString, HomeFactory, @@ -143,13 +112,10 @@ namespace CIAO class CIAO_SERVER_Export Session_Container : public Container { public: - - // @@ (OO) Does the static_config_flag really need to be an int? - // It appears to be a boolean value. Please use bool - // instead. Session_Container (CORBA::ORB_ptr o, - bool static_config_flag = false, - const Static_Config_EntryPoints_Maps* static_entrypts_maps =0); + int static_config_flag =0, + const Static_Config_EntryPoints_Maps* static_entrypts_maps =0 + ); virtual ~Session_Container (void); @@ -157,7 +123,6 @@ namespace CIAO virtual int init (const char *name = 0, const CORBA::PolicyList *more_policies = 0 ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); /** @@ -187,15 +152,8 @@ namespace CIAO ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - // Uninstall a servant for component. - virtual void uninstall_component (::Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - // Install a servant for component or home. - CORBA::Object_ptr install_servant (PortableServer::Servant p, - Container::OA_Type t + CORBA::Object_ptr install_servant (PortableServer::Servant p ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); @@ -203,6 +161,7 @@ namespace CIAO CORBA::Object_ptr install_component (PortableServer::Servant p, PortableServer::ObjectId_out oid ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); // Get an object reference to a component or home from the servant. @@ -211,64 +170,33 @@ namespace CIAO ACE_THROW_SPEC ((CORBA::SystemException)); // Uninstall a servant for component or home. - void uninstall (CORBA::Object_ptr objref, - Container::OA_Type t + void uninstall (CORBA::Object_ptr objref ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Uninstall a servant for component or home. - void uninstall (PortableServer::Servant svt, - Container::OA_Type t + void uninstall (PortableServer::Servant svt ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - // Analog of the POA method that creates an object reference from - // an object id string. - CORBA::Object_ptr generate_reference (const char *obj_id, - const char *repo_id, - Container::OA_Type t - ACE_ENV_ARG_DECL); - - /// Return the servant activator factory that activates the - /// servants for facets and consumers. - Servant_Activator *ports_servant_activator (void) const; - - private: - - /// Create POA for the component. - /** - * This is the POA that is returned to the component applications - * if they need one. - */ - void create_component_POA (const char *name, - const CORBA::PolicyList *p, - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL); - - /// Create POA for the facets and consumers alone. - void create_facet_consumer_POA (PortableServer::POA_ptr root - ACE_ENV_ARG_DECL); + // Uninstall a servant for component or home. + void uninstall_component (CORBA::Object_ptr objref, + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); protected: long number_; static ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> serial_number_; - // @@ (OO) Does this really need to be an int? It appears to be a - // boolean value. Please use bool instead. - // - // It looks like it can also be declared const, as well. - bool static_config_flag_; + int static_config_flag_; const Static_Config_EntryPoints_Maps* static_entrypts_maps_; - - /// The servant activator factory used to activate facets and - /// consumer servants. - Servant_Activator *sa_; }; } // Macro for registration of an OBV factory in the generated -// servant class. Similar to the macro for TAO in +// servant class. Similar to the macro for TAO in // tao/ValueType/ValueFactory.h but here we take advantage of // the fact that we have access to the current ORB indirectly // through the context and container. @@ -276,7 +204,7 @@ namespace CIAO { \ CORBA::ValueFactory factory = new FACTORY; \ CORBA::ORB_ptr orb = \ - this->context_->_ciao_the_Container ()->the_ORB (); \ + this->context_->_ciao_the_Container ()->_ciao_the_ORB (); \ CORBA::ValueFactory prev_factory = \ orb->register_value_factory ( \ VALUETYPE::_tao_obv_static_repository_id (), \ |