diff options
author | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-02-21 22:03:49 +0000 |
---|---|---|
committer | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2007-02-21 22:03:49 +0000 |
commit | 652c9fde64ef0a8d91e9a5349631c6b01fe5a81c (patch) | |
tree | 62fd37633b3a3be897d848b21167811a3a122bdd | |
parent | 4408a02781575fa67be6059ada36f7d45081ad3b (diff) | |
download | ATCD-652c9fde64ef0a8d91e9a5349631c6b01fe5a81c.tar.gz |
ChangeLogTag: Wed Feb 21 22:01:45 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
-rw-r--r-- | CIAO/ChangeLog | 14 | ||||
-rw-r--r-- | CIAO/docs/schema/Basic_Deployment_Data.xsd | 2 | ||||
-rw-r--r-- | CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp | 152 | ||||
-rw-r--r-- | CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp | 61 | ||||
-rw-r--r-- | CIAO/tools/Config_Handlers/IDD_Handler.cpp | 19 | ||||
-rw-r--r-- | CIAO/tools/Config_Handlers/IRDD_Handler.h | 8 |
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; } } |