summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/Container_Base.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/ciao/Container_Base.h')
-rw-r--r--TAO/CIAO/ciao/Container_Base.h114
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 (), \