summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h214
1 files changed, 0 insertions, 214 deletions
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h
deleted file mode 100644
index 50e2f504ffd..00000000000
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Properties_Support.h
+++ /dev/null
@@ -1,214 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file PG_Properties_Support.h
- *
- * $Id$
- *
- * This file declares classes to help manage the PortableGroup::Properties
- * It serves roughly the same purpose as PG_PropertiesManager, but takes a
- * different approach that suits the needs of FT CORBA.
- * It would be possible to replace PG_PropertiesManager, or implement it in
- * terms of PG_Properties_Support at some time in the future.
- *
- * @author Dale Wilson <wilson_d@ociweb.com>
- */
-//=============================================================================
-#ifndef TAO_PG_PROPERTIES_SUPPORT_H
-#define TAO_PG_PROPERTIES_SUPPORT_H
-
-#include "orbsvcs/PortableGroup/PG_Property_Set.h"
-#include "orbsvcs/PortableGroup/portablegroup_export.h"
-
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
-namespace TAO
-{
- /**
- * This Properties Support object manages Property Sets (TAO::PG_Property_Set).
- *
- * One set, default_properties_,
- * acts as a "global" default set of properties.
- *
- * The collection, properties_map_, contains a set of properties for each
- * PortableGroup::type_id. The default set acts as a "parent" for each of
- * these type_id sets.
- *
- * Expected use: When an object group is created that implements the interface
- * identified by type_id, the corresponding typed_id propery set acts as a
- * parent to the Property set contained in the PG_Object_Group.
- *
- * This heirarchy of property sets provides the correct property behavior. A
- * request for a propery to an ObjectGroup will be satisfied from:
- * by the object group group property set, or
- * the typed_id property set, or
- * the default property set, or
- * the request will fail..
- *
- * Note that changes to type_id or default properties will be visible
- * immediately at the ObjectGroup level.
- */
-
- class TAO_PortableGroup_Export PG_Properties_Support
- {
- typedef ACE_Hash_Map_Manager<
- ACE_CString,
- ::TAO::PG_Property_Set *,
- TAO_SYNCH_MUTEX> Properties_Map;
- typedef ACE_Hash_Map_Iterator<
- ACE_CString,
- ::TAO::PG_Property_Set *,
- TAO_SYNCH_MUTEX> Properties_Map_Iterator;
-
- public:
- PG_Properties_Support ();
- ~PG_Properties_Support ();
-
- /**
- * Set a single default property.
- * Overwriting any value previously set for that property.
- * Leaving all other properties untouched.
- * @param name the name of the property to set
- * @value an Any containing the value.
- */
- void set_default_property (const char * name,
- const PortableGroup::Value & value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /**
- * Update the default property set.
- *
- * Properties that appear in props are replaced in or added to the default
- * property set. Properties that do not appear in props are unchanged.
- *
- * @param props the set of properties to update the defaults.
- */
- void set_default_properties (const PortableGroup::Properties & props
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /**
- * Export the default properties in PortableGroup::Properties format.
- *
- * This produces the properties in a format suitable for use across
- * a CORBA interface.
- * The caller owns the resulting Properties and must release it to avoid
- * resource leaks.
- * @returns a newly allocated PortableGroup::Properties.
- */
- PortableGroup::Properties * get_default_properties (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ( (CORBA::SystemException,
- PortableGroup::InvalidProperty,
- PortableGroup::UnsupportedProperty));
-
- /**
- * Undefine default properties that appear in props.
- *
- * Properties that are defined in props are removed from the default
- * property set. Removal is done by name. The property values do not
- * have to match. There is no penalty for attempting to remove a property
- * that does not exist.
- * @param props a set of propertys to be removed by name.
- */
- void remove_default_properties (
- const PortableGroup::Properties & props
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /**
- * Override or define properties associated with a type_id.
- *
- * If a property set does not exist for type_id, a new one will be created.
- * Any property included in overrides will be set or replaced in the type_id
- * property set. Any property not in overrides will be unchanged.
- *
- * Contrary to the "throws" specification, this method does not attempt
- * to validate the properties because doing so would unnecessarily constrain
- * the uses to which this class could be put (although one could strategize the
- * validation.)
- */
- void set_type_properties (
- const char *type_id,
- const PortableGroup::Properties & overrides
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- PortableGroup::InvalidProperty,
- PortableGroup::UnsupportedProperty));
-
- /**
- * Export the property set in a PortableGroup::Properties format.
- *
- * This produces the properties associated with a type_id -- including
- * any default properties that have not been overridden at the type_id level
- * in a format suitable for use across a CORBA interface.
- *
- * The caller owns the resulting Properties and must release it to avoid
- * resource leaks.
- *
- * Compare this method to find_typeid_properties which returns a pointer
- * to the internal representation of the properties in TAO::PG_Property_Set
- * format. This is more efficient, but suitable only for internal use.
- *
- * @param type_id identifies the set of properties to be exported.
- * @returns a newly allocated PortableGroup::Properties that must be released by the caller.
- */
- PortableGroup::Properties * get_type_properties (
- const char *type_id
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ( (CORBA::SystemException));
-
- /**
- * Export the property set in a PortableGroup::Properties format.
- *
- * This method is intended to provide a parent
- * for the property set in a newly-created Object Group of the given
- * type_id.
- *
- * Callers who intend to send the property set across a CORBA interface
- * should use the get_type_properties method.
- *
- * @param type_id identifies the set of properties to be found.
- * @returns a pointer to a Property_Set owned by this Properties_Support object.
- */
- TAO::PG_Property_Set * find_typeid_properties (
- const char *type_id
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /**
- * Undefine default properties that appear in props.
- *
- * Properties that are defined in props are removed from the type_id
- * property set. Removal is done by name. The property values do not
- * have to match. There is no penalty for attempting to remove a property
- * that does not exist.
- * @param props a set of propertys to be removed by name from the type_id set.
- */
- void remove_type_properties (
- const char *type_id,
- const PortableGroup::Properties & props
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ( (CORBA::SystemException));
-
- ///////////////
- // Data Members
- private:
- /**
- * Protect internal state.
- */
- TAO_SYNCH_MUTEX internals_;
-
- /// The default property set.
- TAO::PG_Property_Set default_properties_;
-
- /// A collection of property sets indexed by type_id.
- Properties_Map properties_map_;
- };
-} //namespace TAO_PG
-
-TAO_END_VERSIONED_NAMESPACE_DECL
-
-#endif // TAO_PG_PROPERTIES_SUPPORT_H