summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-02-21 22:03:49 +0000
committerjai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-02-21 22:03:49 +0000
commit652c9fde64ef0a8d91e9a5349631c6b01fe5a81c (patch)
tree62fd37633b3a3be897d848b21167811a3a122bdd
parent4408a02781575fa67be6059ada36f7d45081ad3b (diff)
downloadATCD-652c9fde64ef0a8d91e9a5349631c6b01fe5a81c.tar.gz
ChangeLogTag: Wed Feb 21 22:01:45 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
-rw-r--r--CIAO/ChangeLog14
-rw-r--r--CIAO/docs/schema/Basic_Deployment_Data.xsd2
-rw-r--r--CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp152
-rw-r--r--CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp61
-rw-r--r--CIAO/tools/Config_Handlers/IDD_Handler.cpp19
-rw-r--r--CIAO/tools/Config_Handlers/IRDD_Handler.h8
6 files changed, 206 insertions, 50 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 5c95ee67105..6d8cbf005b3 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,17 @@
+Wed Feb 21 22:01:45 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+
+ Updated the InstanceDeploymentDescription element's
+ deployedResource sub-element to be a sequence.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+
+ Associated config handler changes.
+
Wed Feb 21 20:30:34 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
* DynAny_Handler/DynAny_Handler.cpp
diff --git a/CIAO/docs/schema/Basic_Deployment_Data.xsd b/CIAO/docs/schema/Basic_Deployment_Data.xsd
index efc41c16075..c857bd54858 100644
--- a/CIAO/docs/schema/Basic_Deployment_Data.xsd
+++ b/CIAO/docs/schema/Basic_Deployment_Data.xsd
@@ -265,7 +265,7 @@
<xsd:element name="source" type="xsd:string"/>
<xsd:element name="implementation" type="xsd:IDREF"/> <!-- MonolithicDeploymentDescription -->
<xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
- <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
diff --git a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
index a70e3ad6b38..a56f5d9507e 100644
--- a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
+++ b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
@@ -3090,7 +3090,6 @@ namespace CIAO
node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)),
source_ (new ::XMLSchema::string< ACE_TCHAR > (*s.source_)),
implementation_ (new ::XMLSchema::IDREF< ACE_TCHAR > (*s.implementation_)),
- deployedResource_ (s.deployedResource_.get () ? new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (*s.deployedResource_) : 0),
deployedSharedResource_ (s.deployedSharedResource_.get () ? new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (*s.deployedSharedResource_) : 0),
id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
regulator__ ()
@@ -3103,7 +3102,10 @@ namespace CIAO
for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
}
- if (deployedResource_.get ()) deployedResource_->container (this);
+ {
+ for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
+ }
+
if (deployedSharedResource_.get ()) deployedSharedResource_->container (this);
if (id_.get ()) id_->container (this);
}
@@ -3124,8 +3126,10 @@ namespace CIAO
for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
}
- if (s.deployedResource_.get ()) deployedResource (*(s.deployedResource_));
- else deployedResource_ = ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > (0);
+ deployedResource_.clear ();
+ {
+ for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
+ }
if (s.deployedSharedResource_.get ()) deployedSharedResource (*(s.deployedSharedResource_));
else deployedSharedResource_ = ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > (0);
@@ -3233,31 +3237,45 @@ namespace CIAO
// InstanceDeploymentDescription
//
- bool InstanceDeploymentDescription::
- deployedResource_p () const
+ InstanceDeploymentDescription::deployedResource_iterator
+InstanceDeploymentDescription::
+ begin_deployedResource ()
{
- return deployedResource_.get () != 0;
+ return deployedResource_.begin ();
}
- ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& InstanceDeploymentDescription::
- deployedResource () const
+ InstanceDeploymentDescription::deployedResource_iterator
+InstanceDeploymentDescription::
+ end_deployedResource ()
+ {
+ return deployedResource_.end ();
+ }
+
+ InstanceDeploymentDescription::deployedResource_const_iterator
+InstanceDeploymentDescription::
+ begin_deployedResource () const
{
- return *deployedResource_;
+ return deployedResource_.begin ();
+ }
+
+ InstanceDeploymentDescription::deployedResource_const_iterator
+InstanceDeploymentDescription::
+ end_deployedResource () const
+ {
+ return deployedResource_.end ();
}
void InstanceDeploymentDescription::
- deployedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& e)
+ add_deployedResource
+(::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& e)
{
- if (deployedResource_.get ())
- {
- *deployedResource_ = e;
- }
+ deployedResource_.push_back (e);
+ }
- else
- {
- deployedResource_ = ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > (new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (e));
- deployedResource_->container (this);
- }
+ size_t InstanceDeploymentDescription::
+ count_deployedResource(void) const
+ {
+ return deployedResource_.size ();
}
// InstanceDeploymentDescription
@@ -6270,7 +6288,7 @@ namespace CIAO
else if (n == "deployedResource")
{
::CIAO::Config_Handlers::InstanceResourceDeploymentDescription t (e);
- deployedResource (t);
+ add_deployedResource (t);
}
else if (n == "deployedSharedResource")
@@ -11426,8 +11444,7 @@ namespace CIAO
source (o);
implementation (o);
configProperty (o);
- if (o.deployedResource_p ()) deployedResource (o);
- else deployedResource_none (o);
+ deployedResource (o);
if (o.deployedSharedResource_p ()) deployedSharedResource (o);
else deployedSharedResource_none (o);
if (o.id_p ()) id (o);
@@ -11444,8 +11461,7 @@ namespace CIAO
source (o);
implementation (o);
configProperty (o);
- if (o.deployedResource_p ()) deployedResource (o);
- else deployedResource_none (o);
+ deployedResource (o);
if (o.deployedSharedResource_p ()) deployedSharedResource (o);
else deployedSharedResource_none (o);
if (o.id_p ()) id (o);
@@ -11598,13 +11614,77 @@ namespace CIAO
void InstanceDeploymentDescription::
deployedResource (Type& o)
{
- dispatch (o.deployedResource ());
+ // VC6 anathema strikes again
+ //
+ InstanceDeploymentDescription::Type::deployedResource_iterator b
+(o.begin_deployedResource()), e (o.end_deployedResource());
+
+ if (b != e)
+ {
+ deployedResource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*b);
+ if (++b != e) deployedResource_next (o);
+ }
+
+ deployedResource_post (o);
+ }
+
+ else deployedResource_none (o);
}
void InstanceDeploymentDescription::
deployedResource (Type const& o)
{
- dispatch (o.deployedResource ());
+ // VC6 anathema strikes again
+ //
+ InstanceDeploymentDescription::Type::deployedResource_const_iterator b
+(o.begin_deployedResource()), e (o.end_deployedResource());
+
+ if (b != e)
+ {
+ deployedResource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*b);
+ if (++b != e) deployedResource_next (o);
+ }
+
+ deployedResource_post (o);
+ }
+
+ else deployedResource_none (o);
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_pre (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_pre (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_next (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_next (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_post (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_post (Type const&)
+ {
}
void InstanceDeploymentDescription::
@@ -15470,10 +15550,22 @@ namespace CIAO
}
void InstanceDeploymentDescription::
- deployedResource (Type const& o)
+ deployedResource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > ("deployedResource", top_
+()));
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_next (Type const& o)
+ {
+ deployedResource_post (o);
+ deployedResource_pre (o);
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_post (Type const&)
{
- push_ (::XSCRT::XML::Element< ACE_TCHAR > ("deployedResource", top_ ()));
- Traversal::InstanceDeploymentDescription::deployedResource (o);
pop_ ();
}
diff --git a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
index db41ec8348d..b56463791a3 100644
--- a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
+++ b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
@@ -1511,12 +1511,17 @@ namespace CIAO
// deployedResource
//
public:
- bool deployedResource_p () const;
- ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& deployedResource () const;
- void deployedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& );
+ typedef ::std::list< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription >::iterator deployedResource_iterator;
+ typedef ::std::list< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription >::const_iterator deployedResource_const_iterator;
+ deployedResource_iterator begin_deployedResource ();
+ deployedResource_iterator end_deployedResource ();
+ deployedResource_const_iterator begin_deployedResource () const;
+ deployedResource_const_iterator end_deployedResource () const;
+ void add_deployedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& );
+ size_t count_deployedResource (void) const;
protected:
- ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > deployedResource_;
+ ::std::list< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > deployedResource_;
// deployedSharedResource
//
@@ -4056,6 +4061,24 @@ namespace CIAO
deployedResource (Type const&);
virtual void
+ deployedResource_pre (Type&);
+
+ virtual void
+ deployedResource_pre (Type const&);
+
+ virtual void
+ deployedResource_next (Type&);
+
+ virtual void
+ deployedResource_next (Type const&);
+
+ virtual void
+ deployedResource_post (Type&);
+
+ virtual void
+ deployedResource_post (Type const&);
+
+ virtual void
deployedResource_none (Type&);
virtual void
@@ -7073,16 +7096,38 @@ namespace CIAO
virtual void
configProperty_post (Type const&);
- virtual void
- deployedResource (Type &o)
+ virtual void
+ deployedResource_pre (Type &o)
{
- this->deployedResource (const_cast <Type const &> (o));
+ this->deployedResource_pre (const_cast <Type const &> (o));
}
virtual void
- deployedResource (Type const&);
+ deployedResource_pre (Type const&);
+
+ virtual void
+ deployedResource_next (Type &o)
+ {
+
+ this->deployedResource_next (const_cast <Type const &> (o));
+ }
+
+
+ virtual void
+ deployedResource_next (Type const&);
+
+ virtual void
+ deployedResource_post (Type &o)
+ {
+
+ this->deployedResource_post (const_cast <Type const &> (o));
+ }
+
+
+ virtual void
+ deployedResource_post (Type const&);
virtual void
deployedSharedResource (Type &o)
diff --git a/CIAO/tools/Config_Handlers/IDD_Handler.cpp b/CIAO/tools/Config_Handlers/IDD_Handler.cpp
index f82413cad6b..758b395b354 100644
--- a/CIAO/tools/Config_Handlers/IDD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/IDD_Handler.cpp
@@ -80,12 +80,10 @@ namespace CIAO
src.end_configProperty (),
Property_Functor (dest.configProperty));
- if (src.deployedResource_p ())
- {
- dest.deployedResource.length (1);
- IRDD_Handler::instance_resource_deployment_descr (src.deployedResource (),
- dest.deployedResource[0]);
- }
+ dest.deployedResource.length (src.count_deployedResource ());
+ std::for_each (src.begin_deployedResource (),
+ src.end_deployedResource (),
+ IRDD_Functor (dest.deployedResource));
if (src.deployedSharedResource_p ())
{
@@ -134,9 +132,12 @@ namespace CIAO
src.configProperty[j]));
}
- //Check if there is a deployedResource, if so store
- if(src.deployedResource.length() != 0)
- idd.deployedResource(IRDD_Handler::instance_resource_deployment_descr(src.deployedResource[0]));
+ // Get and store the deployedResource(s)
+ size_t dp_total = src.deployedResource.length ();
+ for (size_t k = 0; k < dp_total; k++)
+ {
+ idd.add_deployedResource (IRDD_Handler::instance_resource_deployment_descr (src.deployedResource[k]));
+ }
//Check if there is a deployedSharedResource, if so store it
if(src.deployedSharedResource.length() != 0)
diff --git a/CIAO/tools/Config_Handlers/IRDD_Handler.h b/CIAO/tools/Config_Handlers/IRDD_Handler.h
index df30ed2e87f..f0dfea04ab3 100644
--- a/CIAO/tools/Config_Handlers/IRDD_Handler.h
+++ b/CIAO/tools/Config_Handlers/IRDD_Handler.h
@@ -15,6 +15,7 @@
#include "Common.h"
#include "Config_Handlers_Export.h"
#include "ace/config-lite.h"
+#include "Utils/Functors.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -25,6 +26,7 @@
namespace Deployment
{
struct InstanceResourceDeploymentDescription;
+class InstanceResourceDeploymentDescriptions;
}
@@ -60,9 +62,11 @@ static InstanceResourceDeploymentDescription
instance_resource_deployment_descr (
const Deployment::InstanceResourceDeploymentDescription& src)
throw (Config_Error);
-
-
};
+typedef Sequence_Handler <InstanceResourceDeploymentDescription,
+ ::Deployment::InstanceResourceDeploymentDescriptions,
+ ::Deployment::InstanceResourceDeploymentDescription,
+ IRDD_Handler::instance_resource_deployment_descr > IRDD_Functor;
}
}