summaryrefslogtreecommitdiff
path: root/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp')
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp390
1 files changed, 0 insertions, 390 deletions
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
deleted file mode 100644
index d5e39d485da..00000000000
--- a/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
+++ /dev/null
@@ -1,390 +0,0 @@
-// $Id$
-#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
-#include "Package_Handlers/CID_Handler.h"
-#include "Package_Handlers/CPD_Handler.h"
-#include "Package_Handlers/IAD_Handler.h"
-#include "Package_Handlers/CAD_Handler.h"
-#include "Package_Handlers/Comp_Intf_Descr_Handler.h"
-#include "Package_Handlers/NIA_Handler.h"
-#include "SatisfierProperty_Handler.h"
-#include "Req_Handler.h"
-
-#include "Basic_Deployment_Data.hpp"
-#include "ciao/Deployment_DataC.h"
-#include "Utils/XML_Helper.h"
-#include "Utils/Exceptions.h"
-
-#include "Deployment.hpp"
-#include "Property_Handler.h"
-
-
-namespace CIAO
-{
- namespace Config_Handlers
- {
- namespace Packaging
- {
-
- IDREF_Base<CORBA::ULong> CID_Handler::IDREF;
-
- struct Capability_Handler
- {
- static void handle_capability (const Capability &desc,
- ::Deployment::Capability &toconfig)
- {
- CIAO_TRACE ("Capability_Handler::get_capability");
-
- toconfig.name = desc.name ().c_str ();
-
- toconfig.resourceType.length (desc.count_resourceType ());
- std::for_each (desc.begin_resourceType (),
- desc.end_resourceType (),
- String_Seq_Functor (toconfig.resourceType));
-
- toconfig.property.length (desc.count_property ());
- std::for_each (desc.begin_property (),
- desc.end_property (),
- SatisfierProperty_Functor (toconfig.property));
- }
-
- static Capability get_capability (const ::Deployment::Capability &src)
- {
- CIAO_TRACE ("Capability_Handler::get_capability - reverse");
-
- Capability retval (src.name.in ());
-
- for (CORBA::ULong i = 0; i < src.resourceType.length (); ++i)
- retval.add_resourceType (src.resourceType[i]);
-
- for (CORBA::ULong i = 0; i < src.property.length (); ++i)
- retval.add_property (SatisfierProperty_Handler::get_sat_property (src.property[i]));
-
- return retval;
- }
- };
-
- typedef Sequence_Handler < Capability,
- ::Deployment::Capabilities,
- ::Deployment::Capability,
- Capability_Handler::handle_capability > Capability_Functor;
-
- struct IR_Handler
- {
- static void handle_ir (const ImplementationRequirement &desc,
- ::Deployment::ImplementationRequirement &toconfig)
- {
- CIAO_TRACE ("IR_Handler::get_ir");
-
- if (desc.resourceUsage_p ())
- {
- switch (desc.resourceUsage ().integral ())
- {
- case ResourceUsageKind::None_l:
- toconfig.resourceUsage = Deployment::None;
- break;
-
- case ResourceUsageKind::InstanceUsesResource_l:
- toconfig.resourceUsage = Deployment::InstanceUsesResource;
- break;
-
- case ResourceUsageKind::ResourceUsesInstance_l:
- toconfig.resourceUsage = Deployment::ResourceUsesInstance;
- break;
-
- case ResourceUsageKind::PortUsesResource_l:
- toconfig.resourceUsage = Deployment::PortUsesResource;
- break;
-
- case ResourceUsageKind::ResourceUsesPort_l:
- toconfig.resourceUsage = Deployment::ResourceUsesPort;
- break;
-
- default:
- throw Config_Error (desc.name (),
- "Unknown ResourceUsageKind.");
- break;
- }
- }
-
- if (desc.resourcePort_p ())
- toconfig.resourcePort = desc.resourcePort ().c_str ();
-
- if (desc.componentPort_p ())
- toconfig.componentPort = desc.componentPort ().c_str ();
-
- toconfig.resourceType = desc.resourceType ().c_str ();
- toconfig.name = desc.name ().c_str ();
-
- std::for_each (desc.begin_property (),
- desc.end_property (),
- Property_Functor (toconfig.property ));
- }
-
- static ImplementationRequirement
- get_ir (const ::Deployment::ImplementationRequirement &src)
- {
- CIAO_TRACE ("IR_Handler::get_ir - reverse");
-
- ImplementationRequirement retval (src.resourceType.in (),
- src.name.in ());
-
- if (src.resourceUsage.length () == 1)
- switch (src.resourceUsage[0])
- {
- case Deployment::None:
- retval.resourceUsage (ResourceUsageKind::None);
- break;
-
- case Deployment::InstanceUsesResource:
- retval.resourceUsage (ResourceUsageKind::InstanceUsesResource);
- break;
-
- case Deployment::ResourceUsesInstance:
- retval.resourceUsage (ResourceUsageKind::ResourceUsesInstance);
- break;
-
- case Deployment::PortUsesResource:
- retval.resourceUsage (ResourceUsageKind::PortUsesResource);
- break;
-
- case Deployment::ResourceUsesPort:
- retval.resourceUsage (ResourceUsageKind::ResourceUsesPort);
- break;
-
- default:
- throw Config_Error (src.name.in (),
- "Unknown ResourceUsageKind.");
- break;
- }
-
- retval.resourcePort (src.resourcePort.in ());
-
- retval.componentPort (src.componentPort.in ());
-
- for (CORBA::ULong i = 0; i < src.property.length (); ++i)
- retval.add_property (Property_Handler::get_property (src.property[i]));
-
- return retval;
- }
- };
-
- typedef Sequence_Handler < ImplementationRequirement,
- ::Deployment::ImplementationRequirements,
- ::Deployment::ImplementationRequirement,
- IR_Handler::handle_ir > IR_Functor;
-
- struct MID_Handler
- {
- static void handle_mid (const MonolithicImplementationDescription &desc,
- ::Deployment::MonolithicImplementationDescription &toconfig)
- {
- CIAO_TRACE ("MID_Handler::get_mid");
-
- toconfig.nodeExecParameter.length (desc.count_nodeExecParameter ());
- std::for_each (desc.begin_nodeExecParameter (),
- desc.end_nodeExecParameter (),
- Property_Functor (toconfig.nodeExecParameter));
-
- toconfig.componentExecParameter.length (desc.count_componentExecParameter ());
- std::for_each (desc.begin_componentExecParameter (),
- desc.end_componentExecParameter (),
- Property_Functor (toconfig.componentExecParameter));
-
- toconfig.deployRequirement.length (desc.count_deployRequirement ());
- while (0)
- {
- IR_Handler::handle_ir (*desc.begin_deployRequirement (),
- toconfig.deployRequirement[0]);
- }
- std::for_each (desc.begin_deployRequirement (),
- desc.end_deployRequirement (),
- IR_Functor (toconfig.deployRequirement));
-
- toconfig.primaryArtifact.length (desc.count_primaryArtifact ());
- SEQ_HAND_GCC_BUG_WORKAROUND (NIA_Handler::handle_nia,
- desc.begin_primaryArtifact (),
- toconfig.primaryArtifact);
- std::for_each (desc.begin_primaryArtifact (),
- desc.end_primaryArtifact (),
- NIA_Functor (toconfig.primaryArtifact));
- }
-
- static MonolithicImplementationDescription
- get_mid (const ::Deployment::MonolithicImplementationDescription &src)
- {
- CIAO_TRACE ("MID_Handler::get_mid - reverse");
-
- MonolithicImplementationDescription retval;
-
- for (CORBA::ULong i = 0; i < src.nodeExecParameter.length (); ++i)
- retval.add_nodeExecParameter
- (Property_Handler::get_property (src.nodeExecParameter[i]));
-
- for (CORBA::ULong i = 0; i < src.componentExecParameter.length (); ++i)
- retval.add_componentExecParameter
- (Property_Handler::get_property (src.componentExecParameter[i]));
-
- for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i)
- retval.add_deployRequirement
- (IR_Handler::get_ir (src.deployRequirement[i]));
-
- for (CORBA::ULong i = 0; i < src.primaryArtifact.length (); ++i)
- retval.add_primaryArtifact
- (NIA_Handler::get_nia (src.primaryArtifact[i]));
-
- return retval;
- }
-
- };
-
- typedef Sequence_Handler < MonolithicImplementationDescription,
- ::Deployment::MonolithicImplementationDescriptions,
- ::Deployment::MonolithicImplementationDescription,
- MID_Handler::handle_mid > MID_Functor;
-
-
-
- void
- CID_Handler::component_impl_descr (
- const ComponentImplementationDescription &desc,
- ::Deployment::ComponentImplementationDescription &toconfig)
- {
- CIAO_TRACE ("CID_Handler::component_impl_descr");
-
- const ComponentImplementationDescription *cid = 0;
- std::auto_ptr <ComponentImplementationDescription> xsc_cid;
-
- if (desc.href_p ())
- {
- xsc_cid.reset (CID_Handler::resolve_cid (desc.href ().c_str ()));
- cid = xsc_cid.get ();
- }
- else
- cid = &desc;
-
- if (cid->label_p ())
- toconfig.label = cid->label ().c_str ();
-
- if (cid->UUID_p ())
- toconfig.UUID = cid->UUID ().c_str ();
-
- if (cid->implements_p ())
- { // MAJO: We should be able to assume this exists, fix broken interpeters..
- Comp_Intf_Descr_Handler::comp_intf_descr (cid->implements (),
- toconfig.implements);
- }
-
- if (cid->assemblyImpl_p ())
- {
- toconfig.assemblyImpl.length (1);
- CAD_Handler::component_assem_descr (cid->assemblyImpl (),
- toconfig.assemblyImpl[0]);
- }
- else if (cid->monolithicImpl_p ())
- {
- toconfig.monolithicImpl.length (1);
- MID_Handler::handle_mid (cid->monolithicImpl (),
- toconfig.monolithicImpl[0]);
- }
- else
- throw Plan_Error ("ComponentImplementationDescription must have either assemblyImpl or monolithicImpl");
-
- // configProperty
- toconfig.configProperty.length (cid->count_configProperty ());
- std::for_each (cid->begin_configProperty (),
- cid->end_configProperty (),
- Property_Functor (toconfig.configProperty));
-
- // capability
- toconfig.capability.length (cid->count_capability ());
- SEQ_HAND_GCC_BUG_WORKAROUND (Capability_Handler::handle_capability,
- cid->begin_capability (),
- toconfig.capability);
- std::for_each (cid->begin_capability (),
- cid->end_capability (),
- Capability_Functor (toconfig.capability));
-
- // dependsOn
- toconfig.dependsOn.length (cid->count_dependsOn ());
- CORBA::ULong pos = 0;
- for (ComponentImplementationDescription::dependsOn_const_iterator i = cid->begin_dependsOn ();
- i != cid->end_dependsOn ();
- ++i)
- toconfig.dependsOn[pos++].requiredType = i->requiredType ().c_str ();
-
- // infoProperty
- toconfig.infoProperty.length (cid->count_infoProperty ());
- std::for_each (cid->begin_infoProperty (),
- cid->end_infoProperty (),
- Property_Functor (toconfig.infoProperty));
-
- }
-
- ComponentImplementationDescription
- CID_Handler::component_impl_descr (const Deployment::ComponentImplementationDescription& src)
- {
- CIAO_TRACE ("CID_Handler::component_impl_descr - reverse");
-
- ComponentImplementationDescription retval;
-
- retval.label (src.label.in ());
- retval.UUID (src.UUID.in ());
-
- {
- retval.implements (Comp_Intf_Descr_Handler::comp_intf_descr (src.implements));
- }
-
- if (src.assemblyImpl.length () == 1)
- {
- retval.assemblyImpl (CAD_Handler::component_assem_descr (src.assemblyImpl[0]));
- }
- else if (src.monolithicImpl.length () == 1)
- {
- retval.monolithicImpl (MID_Handler::get_mid (src.monolithicImpl[0]));
- }
- else
- ACE_DEBUG ((LM_WARNING, "Warning: ComponentImplementationDescription lacks "
- "either a required assemblyImpl or monolithicImpl, or has too many"));
-
- for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i)
- {
- retval.add_configProperty (
- Property_Handler::get_property (src.configProperty[i]));
- }
-
- for (CORBA::ULong i = 0; i < src.dependsOn.length (); ++i)
- {
- retval.add_dependsOn (ImplementationDependency (src.dependsOn[i].requiredType.in ()));
- }
-
- for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i)
- {
- retval.add_infoProperty (
- Property_Handler::get_property (src.infoProperty[i]));
- }
-
- return retval;
- }
-
- ComponentImplementationDescription *
- CID_Handler::resolve_cid (const char *uri)
- {
- CIAO_TRACE ("CID_Handler::resolve_cid");
-
- xercesc::DOMDocument *dom = XML_HELPER->create_dom (uri);
-
- if (!dom)
- throw Parse_Error ("Unable to create DOM for CID");
-
- try {
- return new ComponentImplementationDescription
- (componentImplementationDescription (dom));
- }
- catch (...) {
- throw Parse_Error ("Unable to create XSC structure for CID");
- }
- }
- }
-
- }
-}