summaryrefslogtreecommitdiff
path: root/modules/CIAO/DAnCE
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/DAnCE')
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.cpp177
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.h71
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Any_Handler.cpp59
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Any_Handler.h62
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.cpp17580
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.hpp8561
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.cpp181
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.h57
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.cpp51
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h67
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.cpp152
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.h68
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.cpp66
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.h67
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Common.h46
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp41
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h61
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc126
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Common_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DD_Handler.cpp212
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DD_Handler.h114
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DP_Handler.cpp276
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DP_Handler.h87
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.cpp107
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.h67
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.cpp179
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.h62
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Deployment.cpp854
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Deployment.hpp221
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.cpp982
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.h153
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.cpp90
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.h50
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.cpp65
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.h77
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.cpp181
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.h60
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp195
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.h52
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp381
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.h85
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.mpc22
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h54
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp109
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.h52
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp163
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.h52
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp130
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.h52
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.cpp61
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.h70
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.cpp124
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.h69
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.cpp165
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.h70
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.cpp111
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.h89
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ID_Handler.cpp45
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ID_Handler.h78
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.cpp118
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.h69
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.cpp174
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.h68
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.cpp135
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.h75
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/PL_Handler.cpp52
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/PL_Handler.h53
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.cpp148
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.h65
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.cpp271
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.h59
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.cpp390
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.h67
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.cpp160
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.h74
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp165
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h54
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.cpp124
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.h66
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/NIA_Handler.h65
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.cpp165
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.h69
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.cpp75
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.h58
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Package_Handlers.mpc43
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.cpp142
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.h71
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Property_Handler.cpp56
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Property_Handler.h70
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.cpp55
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.h63
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Req_Handler.cpp57
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Req_Handler.h71
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.cpp173
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.h75
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.cpp59
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.h78
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp46
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.h64
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.cpp52
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.h74
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.cpp71
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.h62
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.cpp126
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.h69
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Utils/Exceptions.h39
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/Utils/Functors.h87
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMI.cpp888
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMI.hpp397
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.hpp77
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.ipp10
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.tpp11
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.hpp22
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.ipp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp98
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.hpp670
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.ipp8
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.tpp9
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.hpp159
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.ipp10
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.tpp10
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XMLSchema/id_map.hpp138
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.cpp103
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.h56
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.cpp14
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.h38
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.hpp572
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.ipp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.tpp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp182
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp141
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.hpp67
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.ipp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.tpp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.hpp266
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.ipp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.tpp195
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.hpp81
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.ipp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.tpp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.hpp493
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.ipp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.tpp7
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp588
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/XSC_XML_Handlers_Export.h54
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ccd.cpp1502
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/ccd.hpp741
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cdd.cpp3334
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cdd.hpp1654
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cdp.cpp2366
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cdp.hpp1187
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cid.cpp6047
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cid.hpp2885
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cpd.cpp2081
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/cpd.hpp1008
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/iad.cpp1491
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/iad.hpp748
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/pcd.cpp1304
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/pcd.hpp647
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/toplevel.cpp348
-rw-r--r--modules/CIAO/DAnCE/Config_Handlers/toplevel.hpp220
-rw-r--r--modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl47
-rw-r--r--modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.mpc12
-rw-r--r--modules/CIAO/DAnCE/DAnCE/Deployment_common.h35
-rw-r--r--modules/CIAO/DAnCE/DAnCE/Module_Main.h90
-rw-r--r--modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc496
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment.idl22
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Application.idl28
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl50
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Base.idl41
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Connection.idl18
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Data.idl41
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl212
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_DomainApplication.idl17
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_DomainApplicationManager.idl19
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_ExecutionManager.idl20
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_NodeApplication.idl14
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_NodeApplicationManager.idl14
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_NodeManager.idl34
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Packaging_Data.idl201
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_PlanError.idl13
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_RepositoryManager.idl50
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl34
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_StartError.idl14
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_StopError.idl14
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_TargetData.idl68
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_TargetManager.idl34
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc15
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/Domain_Application_Export.h58
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp828
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.h203
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc22
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h58
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp1018
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h218
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp161
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h55
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc17
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp293
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h115
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp359
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h92
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp63
-rw-r--r--modules/CIAO/DAnCE/Logger/DAnCE_Logger_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Logger/Log_Macros.cpp6
-rw-r--r--modules/CIAO/DAnCE/Logger/Log_Macros.h100
-rw-r--r--modules/CIAO/DAnCE/Logger/Logger.mpc16
-rw-r--r--modules/CIAO/DAnCE/Logger/Logger_Service.cpp149
-rw-r--r--modules/CIAO/DAnCE/Logger/Logger_Service.h33
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_applicationmanager.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_config_handlers.mpb21
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_config_handlers_base.mpb13
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_convert_plan.mpb6
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_deployment_skel.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_deployment_stub.mpb10
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_domainapplication.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_domainapplication_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_domainapplication_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_exe.mpb6
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_executionmanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_executionmanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_lib.mpb6
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_logger.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodemanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_nodemanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_output.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_plan_launcher.mpb11
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_repositorymanagerbase.mpb9
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_split_plan.mpb6
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_targetmanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_targetmanager_stub.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_tools.mpb4
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp61
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.h33
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp179
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/Name_Utilities.h40
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication.mpc25
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication_Export.h58
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp2365
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h217
-rw-r--r--modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc13
-rw-r--r--modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Export.h58
-rw-r--r--modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp170
-rw-r--r--modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h58
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager.mpc13
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp175
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.h66
-rw-r--r--modules/CIAO/DAnCE/NodeManager/Node_Manager.cpp73
-rw-r--r--modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp598
-rw-r--r--modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.h108
-rw-r--r--modules/CIAO/DAnCE/NodeManager/README13
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Deployment_Failure.h25
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.cpp67
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.h44
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.cpp19
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.h41
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp639
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.mpc29
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base.h61
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp634
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.h91
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Export.h58
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp247
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/PC_Updater.h112
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp20
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.h40
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/README46
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp264
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RM_Helper.h77
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp274
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.mpc47
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl13
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp1258
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h233
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp63
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp509
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h107
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp101
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/URL_Parser.h63
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp378
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.h117
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.cpp241
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.h65
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp454
-rw-r--r--modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp644
-rw-r--r--modules/CIAO/DAnCE/TargetManager/DomainDataManager.h243
-rw-r--r--modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp61
-rw-r--r--modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h59
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager.mpc17
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp59
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.h52
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager.cpp63
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.cpp340
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.h92
-rw-r--r--modules/CIAO/DAnCE/bin/.empty1
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/__init__.py1
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/__init__.py52
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/_path.py0
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/artifact.py24
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_impl.py58
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_inst.py25
-rw-r--r--modules/CIAO/DAnCE/bin/PythonDAnCE/generator/config_prop.py17
-rw-r--r--modules/CIAO/DAnCE/bin/PythonDAnCE/generator/connection.py12
-rw-r--r--modules/CIAO/DAnCE/bin/PythonDAnCE/generator/deploy_requirement.py11
-rw-r--r--modules/CIAO/DAnCE/bin/PythonDAnCE/generator/external_reference.py13
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/footer.py8
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/header.py14
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_impl.py57
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_inst.py13
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_impl.py13
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_inst.py24
-rw-r--r--modules/CIAO/DAnCE/bin/PythonDAnCE/generator/internal_endpoint.py12
-rwxr-xr-xmodules/CIAO/DAnCE/bin/PythonDAnCE/generator/templet.py325
-rwxr-xr-xmodules/CIAO/DAnCE/bin/generate_plan.py90
-rw-r--r--modules/CIAO/DAnCE/docs/OMG-DnC-Tutorial.pptbin0 -> 5473792 bytes
-rw-r--r--modules/CIAO/DAnCE/docs/schema/06-04-02.xsd1010
-rw-r--r--modules/CIAO/DAnCE/docs/schema/Basic_Deployment_Data.xsd430
-rw-r--r--modules/CIAO/DAnCE/docs/schema/CIAOEvents.xsd104
-rw-r--r--modules/CIAO/DAnCE/docs/schema/CIAOServerResources.xsd218
-rw-r--r--modules/CIAO/DAnCE/docs/schema/Deployment.xsd29
-rw-r--r--modules/CIAO/DAnCE/docs/schema/Modified_Deployment.xsd826
-rw-r--r--modules/CIAO/DAnCE/docs/schema/README.html64
-rw-r--r--modules/CIAO/DAnCE/docs/schema/SANet_Network.xsd98
-rw-r--r--modules/CIAO/DAnCE/docs/schema/ServerResourceUsage.txt119
-rw-r--r--modules/CIAO/DAnCE/docs/schema/Spec_Defined_Deployment.xsd897
-rw-r--r--modules/CIAO/DAnCE/docs/schema/Spec_Defined_XMI.xsd35
-rw-r--r--modules/CIAO/DAnCE/docs/schema/Task_Map.xsd90
-rw-r--r--modules/CIAO/DAnCE/docs/schema/XMI.xsd39
-rw-r--r--modules/CIAO/DAnCE/docs/schema/ccd.xsd27
-rw-r--r--modules/CIAO/DAnCE/docs/schema/cdd.xsd60
-rw-r--r--modules/CIAO/DAnCE/docs/schema/cdp.xsd43
-rw-r--r--modules/CIAO/DAnCE/docs/schema/ciaopolicy.xsd607
-rw-r--r--modules/CIAO/DAnCE/docs/schema/cid.xsd126
-rw-r--r--modules/CIAO/DAnCE/docs/schema/cpd.xsd49
-rw-r--r--modules/CIAO/DAnCE/docs/schema/iad.xsd32
-rw-r--r--modules/CIAO/DAnCE/docs/schema/pcd.xsd32
-rw-r--r--modules/CIAO/DAnCE/docs/schema/toplevel.xsd15
-rw-r--r--modules/CIAO/DAnCE/docs/schema/unused_06-04-02.xsd201
-rw-r--r--modules/CIAO/DAnCE/docs/schema/unused_elements.xsd161
-rw-r--r--modules/CIAO/DAnCE/docs/schema/xsc-banner.cpp11
-rw-r--r--modules/CIAO/DAnCE/docs/schema/xsc-banner.h17
-rw-r--r--modules/CIAO/DAnCE/docs/sources/dance-deployment.odgbin0 -> 18566 bytes
-rw-r--r--modules/CIAO/DAnCE/lib/.empty1
-rwxr-xr-xmodules/CIAO/DAnCE/tests/Bug_3832_Regression/run_test.pl64
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl22
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc124
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp99
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h54
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp153
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl245
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl15
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc108
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp189
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h126
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl22
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp215
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h141
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl25
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc108
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp241
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h123
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl23
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc79
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp144
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h85
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp131
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl28
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc108
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp165
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h89
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp158
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl23
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc112
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp160
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h98
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp159
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl14
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc107
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp150
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h83
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp166
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h102
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc110
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp129
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl21
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp151
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h80
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp133
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp133
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp133
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp184
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp184
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp184
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp331
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp331
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp331
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt8
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl269
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt8
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl223
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp238
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp339
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp352
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp348
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp244
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp113
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp127
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp168
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp208
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp284
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp297
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp293
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp262
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl224
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl241
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp179
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp113
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp86
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp90
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp127
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp168
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp208
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp281
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl207
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl227
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat4
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp120
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp136
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp265
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl245
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/Config_Handlers.mpc14
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/dynany_test.idl28
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.cpp292
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.mpc16
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/Package_Handlers.mpc11
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/test.cpp113
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/test.cdp1827
-rw-r--r--modules/CIAO/DAnCE/tests/Config_Handlers/test.cpp119
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host1.cdp639
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host2.cdp969
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2.cdp1300
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host1.cdp1055
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host2.cdp941
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc9
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/NewCcmDance1.cdp1063
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanDump/test.cpp37
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc9
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp55
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc9
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentTest1/test.cpp68
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/Dummy.idl14
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.cpp14
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.h25
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/NameServiceTest.mpc30
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/RegistrationPath.h9
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/clt_main.cpp85
-rwxr-xr-xmodules/CIAO/DAnCE/tests/NameServiceTest/run_test.pl73
-rw-r--r--modules/CIAO/DAnCE/tests/NameServiceTest/srv_main.cpp72
-rw-r--r--modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/NAM_NA.mpc8
-rw-r--r--modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp48
-rw-r--r--modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc8
-rw-r--r--modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp43
-rw-r--r--modules/CIAO/DAnCE/tests/TargetManager/CmpClient.cpp305
-rw-r--r--modules/CIAO/DAnCE/tests/TargetManager/TM_Client.mpc22
-rwxr-xr-xmodules/CIAO/DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl62
-rw-r--r--modules/CIAO/DAnCE/tests/scripts/BasicSP/basicsp.dat3
-rw-r--r--modules/CIAO/DAnCE/tools/Completion/CompletionHandler_T.h38
-rw-r--r--modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.cpp15
-rw-r--r--modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.h74
-rw-r--r--modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.inl92
-rw-r--r--modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.cpp143
-rw-r--r--modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.mpc21
-rw-r--r--modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.cpp198
-rw-r--r--modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.h26
-rw-r--r--modules/CIAO/DAnCE/tools/Convert_Plan/DAnCE_Convert_Plan_export.h58
-rw-r--r--modules/CIAO/DAnCE/tools/Split_Plan/DAnCE_Split_Plan_export.h58
-rw-r--r--modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.cpp144
-rw-r--r--modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.mpc18
-rw-r--r--modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.cpp247
-rw-r--r--modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.h34
521 files changed, 122736 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.cpp
new file mode 100644
index 00000000000..614a20190c0
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.cpp
@@ -0,0 +1,177 @@
+// $Id$
+#include "ADD_Handler.h"
+#include "cdp.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "Property_Handler.h"
+#include "ace/UUID.h"
+
+ACE_RCSID (DAnCE,
+ ADD_Handler,
+ "$Id$")
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ IDREF_Base<CORBA::ULong> ADD_Handler::IDREF;
+
+ void
+ ADD_Handler::artifact_deployment_descrs (const deploymentPlan &src,
+ ::Deployment::ArtifactDeploymentDescriptions &dest)
+ {
+ DANCE_TRACE("ADD_Handler::atrifact_deployment_descrs");
+ deploymentPlan::artifact_const_iterator aci_e =
+ src.end_artifact ();
+ dest.length (src.count_artifact ());
+ CORBA::ULong pos = 0;
+ for (deploymentPlan::artifact_const_iterator aci_b =
+ src.begin_artifact ();
+ aci_e != aci_b;
+ ++aci_b)
+ {
+ ADD_Handler::artifact_deployment_descr (*(*aci_b),
+ dest[pos],
+ pos);
+ pos++;
+ }
+ }
+
+ void
+ ADD_Handler::artifact_deployment_descr (
+ const ArtifactDeploymentDescription &src,
+ Deployment::ArtifactDeploymentDescription &dest,
+ CORBA::ULong pos)
+ {
+ DANCE_TRACE("ADD_Handler::atrifact_deployment_descr");
+ dest.name = ACE_TEXT_ALWAYS_CHAR ( src.name ().c_str ());
+
+
+ dest.node = ACE_TEXT_ALWAYS_CHAR ( src.node ().c_str ());
+
+ ArtifactDeploymentDescription::location_const_iterator end =
+ src.end_location ();
+
+ dest.location.length (src.count_location ());
+ CORBA::ULong len = 0;
+ for (ArtifactDeploymentDescription::location_const_iterator
+ start = src.begin_location ();
+ start != end;
+ ++start)
+ {
+ dest.location[len++] = ACE_TEXT_ALWAYS_CHAR ( (*start)->c_str ());
+ }
+
+ ArtifactDeploymentDescription::source_const_iterator sce =
+ src.end_source ();
+ len = 0;
+ dest.source.length (src.count_source ());
+ for (ArtifactDeploymentDescription::source_const_iterator
+ scb = src.begin_source ();
+ scb != sce;
+ ++scb)
+ {
+ dest.source[len++] = ACE_TEXT_ALWAYS_CHAR ( (*scb)->c_str ());
+ }
+
+ // @@TODO: See this loop is repeated
+ ArtifactDeploymentDescription::execParameter_const_iterator adce =
+ src.end_execParameter ();
+ len = 0;
+ dest.execParameter.length (src.count_execParameter ());
+ for (ArtifactDeploymentDescription::execParameter_const_iterator adcb =
+ src.begin_execParameter ();
+ adcb != adce;
+ ++adcb)
+ {
+ Property_Handler::handle_property (*(*adcb),
+ dest.execParameter[len++]);
+ }
+
+ if (src.id_p ())
+ {
+ ACE_TString cstr (src.id ().c_str ());
+
+ ADD_Handler::IDREF.bind_ref (cstr,pos);
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR,
+ "(%P|%t) Warning: ADD %s has no idref.\n",
+ ACE_TEXT_ALWAYS_CHAR ( src.name ().c_str ())));
+ }
+
+#if 0
+ // @@ MAJO: Don't know how to handle this.
+ if (src.deployRequirement_p ())
+ {
+ Req_Handler handler;
+ add.deployRequirement.length (
+ add.deployRequirement.length () + 1);
+ handler.get_Requirement (
+ add.deployRequirement[add.deployRequirement.length () - 1],
+ src.deployRequirement ());
+ }
+
+ if (src.deployedResource_p ())
+ {
+ RDD_Handler handler;
+ add.deployedResource.length (
+ add.deployedResource.length () + 1);
+ handler.get_ResourceDeploymentDescription (
+ add.deployedResource[add.deployedResource.length () - 1],
+ src.deployedResource ());
+ }
+#endif /* 0 */
+ }
+
+ ArtifactDeploymentDescription
+ ADD_Handler::artifact_deployment_descr (
+ const Deployment::ArtifactDeploymentDescription &src)
+ {
+ DANCE_TRACE("ADD_Handler::atrifact_deployment_descr - reverse");
+ //Get the name and node and store them in the add
+ XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+ XMLSchema::string< ACE_TCHAR > node (ACE_TEXT_CHAR_TO_TCHAR (src.node));
+
+ ArtifactDeploymentDescription add (name,node);
+
+ //Get the location(s) and store it/them in the add
+ size_t total = src.location.length ();
+ for (size_t i = 0; i < total; ++i)
+ {
+ XMLSchema::string< ACE_TCHAR > curr (ACE_TEXT_CHAR_TO_TCHAR (src.location[i]));
+ //add.add_location (curr);
+ }
+
+ //As above, for the source(s)
+ total = src.source.length ();
+ for (size_t j = 0; j < total; ++j)
+ {
+ XMLSchema::string< ACE_TCHAR > curr (ACE_TEXT_CHAR_TO_TCHAR (src.source[j]));
+ //add.add_source (curr);
+ }
+
+ //As above for the execParameter(s)
+ total = src.execParameter.length ();
+ for (size_t k = 0; k < total; ++k)
+ {
+ //add.add_execParameter (Property_Handler::get_property (src.execParameter[k]));
+ }
+
+ // Generate a UUID to use for the IDREF.
+ ACE_Utils::UUID uuid;
+ ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (uuid);
+ ACE_TString add_id (ACE_TEXT ("_"));
+ add_id += ACE_TEXT_CHAR_TO_TCHAR (uuid.to_string ()->c_str ());
+
+ XMLSchema::ID< ACE_TCHAR > xml_id (add_id.c_str ());
+
+ // Bind the ref and set it in the IDD
+ ADD_Handler::IDREF.bind_next_available (add_id);
+
+ add.id (xml_id);
+
+ return add;
+ }
+ }
+ }
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.h
new file mode 100644
index 00000000000..063093a7038
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ADD_Handler.h
@@ -0,0 +1,71 @@
+//==============================================================
+/**
+ * @file ADD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_ADD_Handler_H
+#define CIAO_CONFIG_HANDLERS_ADD_Handler_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+#include "tao/Basic_Types.h"
+#include "IDREF_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace Deployment
+{
+ struct ArtifactDeploymentDescription;
+ class ArtifactDeploymentDescriptions;
+}
+
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+ class deploymentPlan;
+ class ArtifactDeploymentDescription;
+
+ /*
+ * @class ADD_Handler
+ *
+ * @brief Handler class for <ArtifactDeploymentDescription> types.
+ *
+ * This class defines handler methods to map values from XSC
+ * ArtifactDeploymentDescription objects, parsed from the
+ * // @@ Jules, why Any type?
+ * descriptor files, to the corresponding CORBA IDL Any type.
+ */
+ class Config_Handlers_Export ADD_Handler
+ {
+ public:
+ static void artifact_deployment_descrs (const deploymentPlan &src,
+ ::Deployment::ArtifactDeploymentDescriptions &dest);
+
+ static ArtifactDeploymentDescription
+ artifact_deployment_descr (const Deployment::ArtifactDeploymentDescription &src);
+
+ /// The IDREF Table associated with this class
+ static IDREF_Base<CORBA::ULong> IDREF;
+
+ private:
+ static void artifact_deployment_descr (
+ const ArtifactDeploymentDescription& desc,
+ ::Deployment::ArtifactDeploymentDescription &dest,
+ CORBA::ULong l = 0);
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_ADD_Handler_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Any_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Any_Handler.cpp
new file mode 100644
index 00000000000..cadcd1163f1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Any_Handler.cpp
@@ -0,0 +1,59 @@
+// $Id$
+
+#include /**/ "ace/pre.h"
+
+#include "Any_Handler.h"
+#include "DataType_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "tao/AnyTypeCode/Any.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DynAny_Handler/DynAny_Handler.h"
+
+#include "ace/Null_Mutex.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ Any_Handler::Any_Handler (void)
+ {
+ }
+
+ Any_Handler::~Any_Handler (void)
+ {
+ }
+
+ void
+ Any_Handler::extract_into_any (const Any& desc,
+ CORBA::Any& toconfig)
+ {
+ DANCE_TRACE("Any_Handler::extract_into_any");
+ try
+ {
+ DynamicAny::DynAny_var dyn = DYNANY_HANDLER->extract_into_dynany (desc.type (),
+ desc.value ());
+
+ toconfig = *dyn->to_any ();
+
+ dyn->destroy ();
+ }
+ catch (Config_Error &ex)
+ {
+ throw ex;
+ }
+ catch (...)
+ {
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Caught error whilst parsing XML into Any\n"));
+ }
+ }
+
+ Any Any_Handler::get_any (const ::CORBA::Any& src)
+ {
+ DANCE_TRACE("Any_Handler::extract_into_any - reverse");
+
+ return DYNANY_HANDLER->extract_from_dynany (src);
+ }
+ }
+}
+#include /**/ "ace/post.h"
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Any_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Any_Handler.h
new file mode 100644
index 00000000000..03f99722034
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Any_Handler.h
@@ -0,0 +1,62 @@
+//==============================================================
+/**
+ * @file Any_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_ANY_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_ANY_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Common_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Config_Handlers/Common.h"
+#include "tao/Versioned_Namespace.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+namespace CORBA
+{
+ class Any;
+}
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Any;
+
+ /*
+ * @class Any_Handler
+ *
+ * @brief Handler class for <ComponentInterfaceDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC Any objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL Any type.
+ *
+ */
+ class Config_Handlers_Common_Export Any_Handler
+ {
+ public:
+ Any_Handler (void);
+ virtual ~Any_Handler (void);
+
+ static void extract_into_any (const Any& desc,
+ ::CORBA::Any& toconfig);
+
+ static Any get_any (const CORBA::Any &src);
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_ANY_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.cpp b/modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
new file mode 100644
index 00000000000..fa2ac5d3a16
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
@@ -0,0 +1,17580 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "Basic_Deployment_Data.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // IdRef
+ //
+
+ IdRef::
+ IdRef ()
+ :
+ regulator__ ()
+ {
+ }
+
+ IdRef::
+ IdRef (IdRef const& s)
+ : ::XSCRT::Type (),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ idref_ (s.idref_.get () ? new ::XMLSchema::IDREF< ACE_TCHAR > (*s.idref_) : 0),
+ regulator__ ()
+ {
+ if (href_.get ()) href_->container (this);
+ if (idref_.get ()) idref_->container (this);
+ }
+
+ IdRef& IdRef::
+ operator= (IdRef const& s)
+ {
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ if (s.idref_.get ()) idref (*(s.idref_));
+ else idref_ = ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // IdRef
+ //
+ bool IdRef::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& IdRef::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& IdRef::
+ href ()
+ {
+ return *href_;
+ }
+
+ void IdRef::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+
+ // IdRef
+ //
+ bool IdRef::
+ idref_p () const
+ {
+ return idref_.get () != 0;
+ }
+
+ ::XMLSchema::IDREF< ACE_TCHAR > const& IdRef::
+ idref () const
+ {
+ return *idref_;
+ }
+
+ ::XMLSchema::IDREF< ACE_TCHAR >& IdRef::
+ idref ()
+ {
+ return *idref_;
+ }
+
+ ::XSCRT::Type* IdRef::
+ idref_ptr ()
+ {
+ std::basic_string<ACE_TCHAR> temp (idref().id());
+ return this->get_idref(temp.c_str());
+ }
+
+
+ void IdRef::
+ idref (::XMLSchema::IDREF< ACE_TCHAR > const& e)
+ {
+ if (idref_.get ())
+ {
+ *idref_ = e;
+ }
+
+ else
+ {
+ idref_ = ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > (new ::XMLSchema::IDREF< ACE_TCHAR > (e));
+ idref_->container (this);
+ }
+ }
+
+
+ // TCKind
+ //
+
+ TCKind::Value TCKind::
+ integral () const
+ {
+ return v_;
+ }
+
+ bool
+ operator== (::CIAO::Config_Handlers::TCKind const& a, ::CIAO::Config_Handlers::TCKind const& b)
+ {
+ return a.v_ == b.v_;
+ }
+
+ bool
+ operator!= (::CIAO::Config_Handlers::TCKind const& a, ::CIAO::Config_Handlers::TCKind const& b)
+ {
+ return a.v_ != b.v_;
+ }
+
+ TCKind::
+ TCKind (TCKind::Value v)
+ : v_ (v)
+ {
+ }
+
+ // DataType
+ //
+
+ DataType::
+ DataType (::CIAO::Config_Handlers::TCKind const& kind__)
+ :
+ ::XSCRT::Type (),
+ kind_ (new ::CIAO::Config_Handlers::TCKind (kind__)),
+ regulator__ ()
+ {
+ kind_->container (this);
+ }
+
+ DataType::
+ DataType (DataType const& s)
+ :
+ ::XSCRT::Type (),
+ kind_ (new ::CIAO::Config_Handlers::TCKind (*s.kind_)),
+ enum__ (s.enum__.get () ? new ::CIAO::Config_Handlers::EnumType (*s.enum__) : 0),
+ struct__ (s.struct__.get () ? new ::CIAO::Config_Handlers::StructType (*s.struct__) : 0),
+ value_ (s.value_.get () ? new ::CIAO::Config_Handlers::ValueType (*s.value_) : 0),
+ sequence_ (s.sequence_.get () ? new ::CIAO::Config_Handlers::SequenceType (*s.sequence_) : 0),
+ alias_ (s.alias_.get () ? new ::CIAO::Config_Handlers::AliasType (*s.alias_) : 0),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
+ regulator__ ()
+ {
+ kind_->container (this);
+ if (enum__.get ()) enum__->container (this);
+ if (struct__.get ()) struct__->container (this);
+ if (value_.get ()) value_->container (this);
+ if (sequence_.get ()) sequence_->container (this);
+ if (alias_.get ()) alias_->container (this);
+ if (id_.get ()) id_->container (this);
+ }
+
+ DataType& DataType::
+ operator= (DataType const& s)
+ {
+ kind (*s.kind_);
+
+ if (s.enum__.get ())
+ enum_ (*(s.enum__));
+ else
+ enum__.reset (0);
+
+ if (s.struct__.get ())
+ struct_ (*(s.struct__));
+ else
+ struct__.reset (0);
+
+ if (s.value_.get ())
+ value (*(s.value_));
+ else
+ value_.reset (0);
+
+ if (s.sequence_.get ())
+ sequence (*(s.sequence_));
+ else
+ sequence_.reset (0);
+
+ if (s.alias_.get ())
+ alias (*(s.alias_));
+ else
+ alias_.reset (0);
+
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // DataType
+ //
+ ::CIAO::Config_Handlers::TCKind const& DataType::
+ kind () const
+ {
+ return *kind_;
+ }
+
+ void DataType::
+ kind (::CIAO::Config_Handlers::TCKind const& e)
+ {
+ *kind_ = e;
+ }
+
+ // DataType
+ //
+ bool DataType::
+ enum_p () const
+ {
+ return enum__.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::EnumType const& DataType::
+ enum_ () const
+ {
+ return *enum__;
+ }
+
+ void DataType::
+ enum_ (::CIAO::Config_Handlers::EnumType const& e)
+ {
+ if (enum__.get ())
+ {
+ *enum__ = e;
+ }
+
+ else
+ {
+ enum__ = ::std::auto_ptr< ::CIAO::Config_Handlers::EnumType > (new ::CIAO::Config_Handlers::EnumType (e));
+ enum__->container (this);
+ }
+ }
+
+ // DataType
+ //
+ bool DataType::
+ struct_p () const
+ {
+ return struct__.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::StructType const& DataType::
+ struct_ () const
+ {
+ return *struct__;
+ }
+
+ void DataType::
+ struct_ (::CIAO::Config_Handlers::StructType const& e)
+ {
+ if (struct__.get ())
+ {
+ *struct__ = e;
+ }
+
+ else
+ {
+ struct__ = ::std::auto_ptr< ::CIAO::Config_Handlers::StructType > (new ::CIAO::Config_Handlers::StructType (e));
+ struct__->container (this);
+ }
+ }
+
+ // DataType
+ //
+ bool DataType::
+ value_p () const
+ {
+ return value_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ValueType const& DataType::
+ value () const
+ {
+ return *value_;
+ }
+
+ void DataType::
+ value (::CIAO::Config_Handlers::ValueType const& e)
+ {
+ if (value_.get ())
+ {
+ *value_ = e;
+ }
+
+ else
+ {
+ value_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ValueType > (new ::CIAO::Config_Handlers::ValueType (e));
+ value_->container (this);
+ }
+ }
+
+ // DataType
+ //
+ bool DataType::
+ sequence_p () const
+ {
+ return sequence_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::SequenceType const& DataType::
+ sequence () const
+ {
+ return *sequence_;
+ }
+
+ void DataType::
+ sequence (::CIAO::Config_Handlers::SequenceType const& e)
+ {
+ if (sequence_.get ())
+ {
+ *sequence_ = e;
+ }
+
+ else
+ {
+ sequence_ = ::std::auto_ptr< ::CIAO::Config_Handlers::SequenceType > (new ::CIAO::Config_Handlers::SequenceType (e));
+ sequence_->container (this);
+ }
+ }
+
+ // DataType
+ //
+ bool DataType::
+ alias_p () const
+ {
+ return alias_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::AliasType const& DataType::
+ alias () const
+ {
+ return *alias_;
+ }
+
+ void DataType::
+ alias (::CIAO::Config_Handlers::AliasType const& e)
+ {
+ if (alias_.get ())
+ {
+ *alias_ = e;
+ }
+
+ else
+ {
+ alias_ = ::std::auto_ptr< ::CIAO::Config_Handlers::AliasType > (new ::CIAO::Config_Handlers::AliasType (e));
+ alias_->container (this);
+ }
+ }
+
+ // DataType
+ //
+ bool DataType::
+ id_p () const
+ {
+ return id_.get () != 0;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR > const& DataType::
+ id () const
+ {
+ return *id_;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR >& DataType::
+ id ()
+ {
+ return *id_;
+ }
+
+ void DataType::
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ {
+ if (id_.get ())
+ {
+ *id_ = e;
+ }
+
+ else
+ {
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
+ }
+ }
+
+
+ // DataValue
+ //
+
+ DataValue::
+ DataValue ()
+ :
+ regulator__ ()
+ {
+ }
+
+ DataValue::
+ DataValue (DataValue const& s)
+ :
+ ::XSCRT::Type (),
+ short__ (s.short__),
+ long__ (s.long__),
+ ushort_ (s.ushort_),
+ ulong_ (s.ulong_),
+ float__ (s.float__),
+ double__ (s.double__),
+ boolean_ (s.boolean_),
+ octet_ (s.octet_),
+ enum__ (s.enum__),
+ string_ (s.string_),
+ longlong_ (s.longlong_),
+ ulonglong_ (s.ulonglong_),
+ longdouble_ (s.longdouble_),
+ element_ (s.element_),
+ member_ (s.member_),
+ regulator__ ()
+ {
+ }
+
+ DataValue& DataValue::
+ operator= (DataValue const& s)
+ {
+ short__ = s.short__;
+
+ long__ = s.long__;
+
+ ushort_ = s.ushort_;
+
+ ulong_ = s.ulong_;
+
+ float__ = s.float__;
+
+ double__ = s.double__;
+
+ boolean_ = s.boolean_;
+
+ octet_ = s.octet_;
+
+ enum__ = s.enum__;
+
+ string_ = s.string_;
+
+ longlong_ = s.longlong_;
+
+ ulonglong_ = s.ulonglong_;
+
+ longdouble_ = s.longdouble_;
+
+ element_ = s.element_;
+
+ member_ = s.member_;
+
+ return *this;
+ }
+
+
+ // DataValue
+ //
+ DataValue::short_iterator DataValue::
+ begin_short ()
+ {
+ return short__.begin ();
+ }
+
+ DataValue::short_iterator DataValue::
+ end_short ()
+ {
+ return short__.end ();
+ }
+
+ DataValue::short_const_iterator DataValue::
+ begin_short () const
+ {
+ return short__.begin ();
+ }
+
+ DataValue::short_const_iterator DataValue::
+ end_short () const
+ {
+ return short__.end ();
+ }
+
+ void DataValue::
+ add_short (ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > const& e)
+ {
+ short__.push_back (e);
+ }
+
+ size_t DataValue::
+ count_short(void) const
+ {
+ return short__.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::long_iterator DataValue::
+ begin_long ()
+ {
+ return long__.begin ();
+ }
+
+ DataValue::long_iterator DataValue::
+ end_long ()
+ {
+ return long__.end ();
+ }
+
+ DataValue::long_const_iterator DataValue::
+ begin_long () const
+ {
+ return long__.begin ();
+ }
+
+ DataValue::long_const_iterator DataValue::
+ end_long () const
+ {
+ return long__.end ();
+ }
+
+ void DataValue::
+ add_long (ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > const& e)
+ {
+ long__.push_back (e);
+ }
+
+ size_t DataValue::
+ count_long(void) const
+ {
+ return long__.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::ushort_iterator DataValue::
+ begin_ushort ()
+ {
+ return ushort_.begin ();
+ }
+
+ DataValue::ushort_iterator DataValue::
+ end_ushort ()
+ {
+ return ushort_.end ();
+ }
+
+ DataValue::ushort_const_iterator DataValue::
+ begin_ushort () const
+ {
+ return ushort_.begin ();
+ }
+
+ DataValue::ushort_const_iterator DataValue::
+ end_ushort () const
+ {
+ return ushort_.end ();
+ }
+
+ void DataValue::
+ add_ushort (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > const& e)
+ {
+ ushort_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_ushort(void) const
+ {
+ return ushort_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::ulong_iterator DataValue::
+ begin_ulong ()
+ {
+ return ulong_.begin ();
+ }
+
+ DataValue::ulong_iterator DataValue::
+ end_ulong ()
+ {
+ return ulong_.end ();
+ }
+
+ DataValue::ulong_const_iterator DataValue::
+ begin_ulong () const
+ {
+ return ulong_.begin ();
+ }
+
+ DataValue::ulong_const_iterator DataValue::
+ end_ulong () const
+ {
+ return ulong_.end ();
+ }
+
+ void DataValue::
+ add_ulong (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > const& e)
+ {
+ ulong_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_ulong(void) const
+ {
+ return ulong_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::float_iterator DataValue::
+ begin_float ()
+ {
+ return float__.begin ();
+ }
+
+ DataValue::float_iterator DataValue::
+ end_float ()
+ {
+ return float__.end ();
+ }
+
+ DataValue::float_const_iterator DataValue::
+ begin_float () const
+ {
+ return float__.begin ();
+ }
+
+ DataValue::float_const_iterator DataValue::
+ end_float () const
+ {
+ return float__.end ();
+ }
+
+ void DataValue::
+ add_float (ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > const& e)
+ {
+ float__.push_back (e);
+ }
+
+ size_t DataValue::
+ count_float(void) const
+ {
+ return float__.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::double_iterator DataValue::
+ begin_double ()
+ {
+ return double__.begin ();
+ }
+
+ DataValue::double_iterator DataValue::
+ end_double ()
+ {
+ return double__.end ();
+ }
+
+ DataValue::double_const_iterator DataValue::
+ begin_double () const
+ {
+ return double__.begin ();
+ }
+
+ DataValue::double_const_iterator DataValue::
+ end_double () const
+ {
+ return double__.end ();
+ }
+
+ void DataValue::
+ add_double (ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& e)
+ {
+ double__.push_back (e);
+ }
+
+ size_t DataValue::
+ count_double(void) const
+ {
+ return double__.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::boolean_iterator DataValue::
+ begin_boolean ()
+ {
+ return boolean_.begin ();
+ }
+
+ DataValue::boolean_iterator DataValue::
+ end_boolean ()
+ {
+ return boolean_.end ();
+ }
+
+ DataValue::boolean_const_iterator DataValue::
+ begin_boolean () const
+ {
+ return boolean_.begin ();
+ }
+
+ DataValue::boolean_const_iterator DataValue::
+ end_boolean () const
+ {
+ return boolean_.end ();
+ }
+
+ void DataValue::
+ add_boolean (ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > const& e)
+ {
+ boolean_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_boolean(void) const
+ {
+ return boolean_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::octet_iterator DataValue::
+ begin_octet ()
+ {
+ return octet_.begin ();
+ }
+
+ DataValue::octet_iterator DataValue::
+ end_octet ()
+ {
+ return octet_.end ();
+ }
+
+ DataValue::octet_const_iterator DataValue::
+ begin_octet () const
+ {
+ return octet_.begin ();
+ }
+
+ DataValue::octet_const_iterator DataValue::
+ end_octet () const
+ {
+ return octet_.end ();
+ }
+
+ void DataValue::
+ add_octet (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > const& e)
+ {
+ octet_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_octet(void) const
+ {
+ return octet_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::enum_iterator DataValue::
+ begin_enum ()
+ {
+ return enum__.begin ();
+ }
+
+ DataValue::enum_iterator DataValue::
+ end_enum ()
+ {
+ return enum__.end ();
+ }
+
+ DataValue::enum_const_iterator DataValue::
+ begin_enum () const
+ {
+ return enum__.begin ();
+ }
+
+ DataValue::enum_const_iterator DataValue::
+ end_enum () const
+ {
+ return enum__.end ();
+ }
+
+ void DataValue::
+ add_enum (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ enum__.push_back (e);
+ }
+
+ size_t DataValue::
+ count_enum(void) const
+ {
+ return enum__.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::string_iterator DataValue::
+ begin_string ()
+ {
+ return string_.begin ();
+ }
+
+ DataValue::string_iterator DataValue::
+ end_string ()
+ {
+ return string_.end ();
+ }
+
+ DataValue::string_const_iterator DataValue::
+ begin_string () const
+ {
+ return string_.begin ();
+ }
+
+ DataValue::string_const_iterator DataValue::
+ end_string () const
+ {
+ return string_.end ();
+ }
+
+ void DataValue::
+ add_string (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ string_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_string(void) const
+ {
+ return string_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::longlong_iterator DataValue::
+ begin_longlong ()
+ {
+ return longlong_.begin ();
+ }
+
+ DataValue::longlong_iterator DataValue::
+ end_longlong ()
+ {
+ return longlong_.end ();
+ }
+
+ DataValue::longlong_const_iterator DataValue::
+ begin_longlong () const
+ {
+ return longlong_.begin ();
+ }
+
+ DataValue::longlong_const_iterator DataValue::
+ end_longlong () const
+ {
+ return longlong_.end ();
+ }
+
+ void DataValue::
+ add_longlong (ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > const& e)
+ {
+ longlong_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_longlong(void) const
+ {
+ return longlong_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::ulonglong_iterator DataValue::
+ begin_ulonglong ()
+ {
+ return ulonglong_.begin ();
+ }
+
+ DataValue::ulonglong_iterator DataValue::
+ end_ulonglong ()
+ {
+ return ulonglong_.end ();
+ }
+
+ DataValue::ulonglong_const_iterator DataValue::
+ begin_ulonglong () const
+ {
+ return ulonglong_.begin ();
+ }
+
+ DataValue::ulonglong_const_iterator DataValue::
+ end_ulonglong () const
+ {
+ return ulonglong_.end ();
+ }
+
+ void DataValue::
+ add_ulonglong (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > const& e)
+ {
+ ulonglong_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_ulonglong(void) const
+ {
+ return ulonglong_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::longdouble_iterator DataValue::
+ begin_longdouble ()
+ {
+ return longdouble_.begin ();
+ }
+
+ DataValue::longdouble_iterator DataValue::
+ end_longdouble ()
+ {
+ return longdouble_.end ();
+ }
+
+ DataValue::longdouble_const_iterator DataValue::
+ begin_longdouble () const
+ {
+ return longdouble_.begin ();
+ }
+
+ DataValue::longdouble_const_iterator DataValue::
+ end_longdouble () const
+ {
+ return longdouble_.end ();
+ }
+
+ void DataValue::
+ add_longdouble (ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& e)
+ {
+ longdouble_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_longdouble(void) const
+ {
+ return longdouble_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::element_iterator DataValue::
+ begin_element ()
+ {
+ return element_.begin ();
+ }
+
+ DataValue::element_iterator DataValue::
+ end_element ()
+ {
+ return element_.end ();
+ }
+
+ DataValue::element_const_iterator DataValue::
+ begin_element () const
+ {
+ return element_.begin ();
+ }
+
+ DataValue::element_const_iterator DataValue::
+ end_element () const
+ {
+ return element_.end ();
+ }
+
+ void DataValue::
+ add_element (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > const& e)
+ {
+ element_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_element(void) const
+ {
+ return element_.size ();
+ }
+
+ // DataValue
+ //
+ DataValue::member_iterator DataValue::
+ begin_member ()
+ {
+ return member_.begin ();
+ }
+
+ DataValue::member_iterator DataValue::
+ end_member ()
+ {
+ return member_.end ();
+ }
+
+ DataValue::member_const_iterator DataValue::
+ begin_member () const
+ {
+ return member_.begin ();
+ }
+
+ DataValue::member_const_iterator DataValue::
+ end_member () const
+ {
+ return member_.end ();
+ }
+
+ void DataValue::
+ add_member (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > const& e)
+ {
+ member_.push_back (e);
+ }
+
+ size_t DataValue::
+ count_member(void) const
+ {
+ return member_.size ();
+ }
+
+
+ // AliasType
+ //
+
+ AliasType::
+ AliasType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::CIAO::Config_Handlers::DataType const& elementType__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
+ elementType_ (new ::CIAO::Config_Handlers::DataType (elementType__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ elementType_->container (this);
+ }
+
+ AliasType::
+ AliasType (AliasType const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
+ elementType_ (new ::CIAO::Config_Handlers::DataType (*s.elementType_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ elementType_->container (this);
+ }
+
+ AliasType& AliasType::
+ operator= (AliasType const& s)
+ {
+ name (*s.name_);
+
+ typeId (*s.typeId_);
+
+ elementType (*s.elementType_);
+
+ return *this;
+ }
+
+
+ // AliasType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& AliasType::
+ name () const
+ {
+ return *name_;
+ }
+
+ void AliasType::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // AliasType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& AliasType::
+ typeId () const
+ {
+ return *typeId_;
+ }
+
+ void AliasType::
+ typeId (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *typeId_ = e;
+ }
+
+ // AliasType
+ //
+ ::CIAO::Config_Handlers::DataType const& AliasType::
+ elementType () const
+ {
+ return *elementType_;
+ }
+
+ void AliasType::
+ elementType (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *elementType_ = e;
+ }
+
+
+ // EnumType
+ //
+
+ EnumType::
+ EnumType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& member__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
+ member_ (member__),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ }
+
+ EnumType::
+ EnumType (EnumType const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
+ member_ (s.member_),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ }
+
+ EnumType& EnumType::
+ operator= (EnumType const& s)
+ {
+ name (*s.name_);
+
+ typeId (*s.typeId_);
+
+ member_ = s.member_;
+
+ return *this;
+ }
+
+
+ // EnumType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& EnumType::
+ name () const
+ {
+ return *name_;
+ }
+
+ void EnumType::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // EnumType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& EnumType::
+ typeId () const
+ {
+ return *typeId_;
+ }
+
+ void EnumType::
+ typeId (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *typeId_ = e;
+ }
+
+ // EnumType
+ //
+ EnumType::member_iterator EnumType::
+ begin_member ()
+ {
+ return member_.begin ();
+ }
+
+ EnumType::member_iterator EnumType::
+ end_member ()
+ {
+ return member_.end ();
+ }
+
+ EnumType::member_const_iterator EnumType::
+ begin_member () const
+ {
+ return member_.begin ();
+ }
+
+ EnumType::member_const_iterator EnumType::
+ end_member () const
+ {
+ return member_.end ();
+ }
+
+ void EnumType::
+ add_member (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ member_.push_back (e);
+ }
+
+ size_t EnumType::
+ count_member(void) const
+ {
+ return member_.size ();
+ }
+
+
+ // StructType
+ //
+
+ StructType::
+ StructType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ }
+
+ StructType::
+ StructType (StructType const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
+ member_ (s.member_),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ }
+
+ StructType& StructType::
+ operator= (StructType const& s)
+ {
+ name (*s.name_);
+
+ typeId (*s.typeId_);
+
+ member_ = s.member_;
+
+ return *this;
+ }
+
+
+ // StructType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& StructType::
+ name () const
+ {
+ return *name_;
+ }
+
+ void StructType::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // StructType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& StructType::
+ typeId () const
+ {
+ return *typeId_;
+ }
+
+ void StructType::
+ typeId (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *typeId_ = e;
+ }
+
+ // StructType
+ //
+ StructType::member_iterator StructType::
+ begin_member ()
+ {
+ return member_.begin ();
+ }
+
+ StructType::member_iterator StructType::
+ end_member ()
+ {
+ return member_.end ();
+ }
+
+ StructType::member_const_iterator StructType::
+ begin_member () const
+ {
+ return member_.begin ();
+ }
+
+ StructType::member_const_iterator StructType::
+ end_member () const
+ {
+ return member_.end ();
+ }
+
+ void StructType::
+ add_member (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > const& e)
+ {
+ member_.push_back (e);
+ }
+
+ size_t StructType::
+ count_member(void) const
+ {
+ return member_.size ();
+ }
+
+
+ // StructMemberType
+ //
+
+ StructMemberType::
+ StructMemberType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::DataType const& type__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ type_ (new ::CIAO::Config_Handlers::DataType (type__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ type_->container (this);
+ }
+
+ StructMemberType::
+ StructMemberType (StructMemberType const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ type_ (new ::CIAO::Config_Handlers::DataType (*s.type_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ type_->container (this);
+ }
+
+ StructMemberType& StructMemberType::
+ operator= (StructMemberType const& s)
+ {
+ name (*s.name_);
+
+ type (*s.type_);
+
+ return *this;
+ }
+
+
+ // StructMemberType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& StructMemberType::
+ name () const
+ {
+ return *name_;
+ }
+
+ void StructMemberType::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // StructMemberType
+ //
+ ::CIAO::Config_Handlers::DataType const& StructMemberType::
+ type () const
+ {
+ return *type_;
+ }
+
+ void StructMemberType::
+ type (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *type_ = e;
+ }
+
+
+ // ValueType
+ //
+
+ ValueType::
+ ValueType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::XMLSchema::string< ACE_TCHAR > const& modifier__,
+ ::CIAO::Config_Handlers::DataType const& baseType__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
+ modifier_ (new ::XMLSchema::string< ACE_TCHAR > (modifier__)),
+ baseType_ (new ::CIAO::Config_Handlers::DataType (baseType__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ modifier_->container (this);
+ baseType_->container (this);
+ }
+
+ ValueType::
+ ValueType (ValueType const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
+ modifier_ (new ::XMLSchema::string< ACE_TCHAR > (*s.modifier_)),
+ baseType_ (new ::CIAO::Config_Handlers::DataType (*s.baseType_)),
+ member_ (s.member_),
+ regulator__ ()
+ {
+ name_->container (this);
+ typeId_->container (this);
+ modifier_->container (this);
+ baseType_->container (this);
+ }
+
+ ValueType& ValueType::
+ operator= (ValueType const& s)
+ {
+ name (*s.name_);
+
+ typeId (*s.typeId_);
+
+ modifier (*s.modifier_);
+
+ baseType (*s.baseType_);
+
+ member_ = s.member_;
+
+ return *this;
+ }
+
+
+ // ValueType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ValueType::
+ name () const
+ {
+ return *name_;
+ }
+
+ void ValueType::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // ValueType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ValueType::
+ typeId () const
+ {
+ return *typeId_;
+ }
+
+ void ValueType::
+ typeId (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *typeId_ = e;
+ }
+
+ // ValueType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ValueType::
+ modifier () const
+ {
+ return *modifier_;
+ }
+
+ void ValueType::
+ modifier (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *modifier_ = e;
+ }
+
+ // ValueType
+ //
+ ::CIAO::Config_Handlers::DataType const& ValueType::
+ baseType () const
+ {
+ return *baseType_;
+ }
+
+ void ValueType::
+ baseType (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *baseType_ = e;
+ }
+
+ // ValueType
+ //
+ ValueType::member_iterator ValueType::
+ begin_member ()
+ {
+ return member_.begin ();
+ }
+
+ ValueType::member_iterator ValueType::
+ end_member ()
+ {
+ return member_.end ();
+ }
+
+ ValueType::member_const_iterator ValueType::
+ begin_member () const
+ {
+ return member_.begin ();
+ }
+
+ ValueType::member_const_iterator ValueType::
+ end_member () const
+ {
+ return member_.end ();
+ }
+
+ void ValueType::
+ add_member (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > const& e)
+ {
+ member_.push_back (e);
+ }
+
+ size_t ValueType::
+ count_member(void) const
+ {
+ return member_.size ();
+ }
+
+
+ // ValueMemberType
+ //
+
+ ValueMemberType::
+ ValueMemberType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& visibility__,
+ ::CIAO::Config_Handlers::DataType const& type__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ visibility_ (new ::XMLSchema::string< ACE_TCHAR > (visibility__)),
+ type_ (new ::CIAO::Config_Handlers::DataType (type__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ visibility_->container (this);
+ type_->container (this);
+ }
+
+ ValueMemberType::
+ ValueMemberType (ValueMemberType const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ visibility_ (new ::XMLSchema::string< ACE_TCHAR > (*s.visibility_)),
+ type_ (new ::CIAO::Config_Handlers::DataType (*s.type_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ visibility_->container (this);
+ type_->container (this);
+ }
+
+ ValueMemberType& ValueMemberType::
+ operator= (ValueMemberType const& s)
+ {
+ name (*s.name_);
+
+ visibility (*s.visibility_);
+
+ type (*s.type_);
+
+ return *this;
+ }
+
+
+ // ValueMemberType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ValueMemberType::
+ name () const
+ {
+ return *name_;
+ }
+
+ void ValueMemberType::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // ValueMemberType
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ValueMemberType::
+ visibility () const
+ {
+ return *visibility_;
+ }
+
+ void ValueMemberType::
+ visibility (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *visibility_ = e;
+ }
+
+ // ValueMemberType
+ //
+ ::CIAO::Config_Handlers::DataType const& ValueMemberType::
+ type () const
+ {
+ return *type_;
+ }
+
+ void ValueMemberType::
+ type (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *type_ = e;
+ }
+
+
+ // NamedValue
+ //
+
+ NamedValue::
+ NamedValue (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::DataValue const& value__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ value_ (new ::CIAO::Config_Handlers::DataValue (value__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ value_->container (this);
+ }
+
+ NamedValue::
+ NamedValue (NamedValue const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ value_ (new ::CIAO::Config_Handlers::DataValue (*s.value_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ value_->container (this);
+ }
+
+ NamedValue& NamedValue::
+ operator= (NamedValue const& s)
+ {
+ name (*s.name_);
+
+ value (*s.value_);
+
+ return *this;
+ }
+
+
+ // NamedValue
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& NamedValue::
+ name () const
+ {
+ return *name_;
+ }
+
+ void NamedValue::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // NamedValue
+ //
+ ::CIAO::Config_Handlers::DataValue const& NamedValue::
+ value () const
+ {
+ return *value_;
+ }
+
+ void NamedValue::
+ value (::CIAO::Config_Handlers::DataValue const& e)
+ {
+ *value_ = e;
+ }
+
+
+ // SequenceType
+ //
+
+ SequenceType::
+ SequenceType (::CIAO::Config_Handlers::DataType const& elementType__)
+ :
+ elementType_ (new ::CIAO::Config_Handlers::DataType (elementType__)),
+ regulator__ ()
+ {
+ elementType_->container (this);
+ }
+
+ SequenceType::
+ SequenceType (SequenceType const& s)
+ :
+ ::XSCRT::Type (),
+ bound_ (s.bound_.get () ? new ::XMLSchema::unsignedInt (*s.bound_) : 0),
+ elementType_ (new ::CIAO::Config_Handlers::DataType (*s.elementType_)),
+ regulator__ ()
+ {
+ if (bound_.get ()) bound_->container (this);
+ elementType_->container (this);
+ }
+
+ SequenceType& SequenceType::
+ operator= (SequenceType const& s)
+ {
+ if (s.bound_.get ())
+ bound (*(s.bound_));
+ else
+ bound_.reset (0);
+
+ elementType (*s.elementType_);
+
+ return *this;
+ }
+
+
+ // SequenceType
+ //
+ bool SequenceType::
+ bound_p () const
+ {
+ return bound_.get () != 0;
+ }
+
+ ::XMLSchema::unsignedInt const& SequenceType::
+ bound () const
+ {
+ return *bound_;
+ }
+
+ void SequenceType::
+ bound (::XMLSchema::unsignedInt const& e)
+ {
+ if (bound_.get ())
+ {
+ *bound_ = e;
+ }
+
+ else
+ {
+ bound_ = ::std::auto_ptr< ::XMLSchema::unsignedInt > (new ::XMLSchema::unsignedInt (e));
+ bound_->container (this);
+ }
+ }
+
+ // SequenceType
+ //
+ ::CIAO::Config_Handlers::DataType const& SequenceType::
+ elementType () const
+ {
+ return *elementType_;
+ }
+
+ void SequenceType::
+ elementType (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *elementType_ = e;
+ }
+
+
+ // Any
+ //
+
+ Any::
+ Any (::CIAO::Config_Handlers::DataType const& type__,
+ ::CIAO::Config_Handlers::DataValue const& value__)
+ :
+ type_ (new ::CIAO::Config_Handlers::DataType (type__)),
+ value_ (new ::CIAO::Config_Handlers::DataValue (value__)),
+ regulator__ ()
+ {
+ type_->container (this);
+ value_->container (this);
+ }
+
+ Any::
+ Any (Any const& s)
+ :
+ ::XSCRT::Type (),
+ type_ (new ::CIAO::Config_Handlers::DataType (*s.type_)),
+ value_ (new ::CIAO::Config_Handlers::DataValue (*s.value_)),
+ regulator__ ()
+ {
+ type_->container (this);
+ value_->container (this);
+ }
+
+ Any& Any::
+ operator= (Any const& s)
+ {
+ type (*s.type_);
+
+ value (*s.value_);
+
+ return *this;
+ }
+
+
+ // Any
+ //
+ ::CIAO::Config_Handlers::DataType const& Any::
+ type () const
+ {
+ return *type_;
+ }
+
+ void Any::
+ type (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *type_ = e;
+ }
+
+ // Any
+ //
+ ::CIAO::Config_Handlers::DataValue const& Any::
+ value () const
+ {
+ return *value_;
+ }
+
+ void Any::
+ value (::CIAO::Config_Handlers::DataValue const& e)
+ {
+ *value_ = e;
+ }
+
+
+ // Property
+ //
+
+ Property::
+ Property (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::Any const& value__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ value_ (new ::CIAO::Config_Handlers::Any (value__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ value_->container (this);
+ }
+
+ Property::
+ Property (Property const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ value_ (new ::CIAO::Config_Handlers::Any (*s.value_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ value_->container (this);
+ }
+
+ Property& Property::
+ operator= (Property const& s)
+ {
+ name (*s.name_);
+
+ value (*s.value_);
+
+ return *this;
+ }
+
+
+ // Property
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Property::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Property::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Property
+ //
+ ::CIAO::Config_Handlers::Any const& Property::
+ value () const
+ {
+ return *value_;
+ }
+
+ void Property::
+ value (::CIAO::Config_Handlers::Any const& e)
+ {
+ *value_ = e;
+ }
+
+
+ // SatisfierPropertyKind
+ //
+
+ SatisfierPropertyKind::Value SatisfierPropertyKind::
+ integral () const
+ {
+ return v_;
+ }
+
+ bool
+ operator== (::CIAO::Config_Handlers::SatisfierPropertyKind const& a, ::CIAO::Config_Handlers::SatisfierPropertyKind const& b)
+ {
+ return a.v_ == b.v_;
+ }
+
+ bool
+ operator!= (::CIAO::Config_Handlers::SatisfierPropertyKind const& a, ::CIAO::Config_Handlers::SatisfierPropertyKind const& b)
+ {
+ return a.v_ != b.v_;
+ }
+
+ SatisfierPropertyKind::
+ SatisfierPropertyKind (SatisfierPropertyKind::Value v)
+ : v_ (v)
+ {
+ }
+
+ // SatisfierProperty
+ //
+
+ SatisfierProperty::
+ SatisfierProperty (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::SatisfierPropertyKind const& kind__,
+ ::XMLSchema::boolean const& dynamic__,
+ ::CIAO::Config_Handlers::Any const& value__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ kind_ (new ::CIAO::Config_Handlers::SatisfierPropertyKind (kind__)),
+ dynamic_ (new ::XMLSchema::boolean (dynamic__)),
+ value_ (new ::CIAO::Config_Handlers::Any (value__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ kind_->container (this);
+ dynamic_->container (this);
+ value_->container (this);
+ }
+
+ SatisfierProperty::
+ SatisfierProperty (SatisfierProperty const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ kind_ (new ::CIAO::Config_Handlers::SatisfierPropertyKind (*s.kind_)),
+ dynamic_ (new ::XMLSchema::boolean (*s.dynamic_)),
+ value_ (new ::CIAO::Config_Handlers::Any (*s.value_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ kind_->container (this);
+ dynamic_->container (this);
+ value_->container (this);
+ }
+
+ SatisfierProperty& SatisfierProperty::
+ operator= (SatisfierProperty const& s)
+ {
+ name (*s.name_);
+
+ kind (*s.kind_);
+
+ dynamic (*s.dynamic_);
+
+ value (*s.value_);
+
+ return *this;
+ }
+
+
+ // SatisfierProperty
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& SatisfierProperty::
+ name () const
+ {
+ return *name_;
+ }
+
+ void SatisfierProperty::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // SatisfierProperty
+ //
+ ::CIAO::Config_Handlers::SatisfierPropertyKind const& SatisfierProperty::
+ kind () const
+ {
+ return *kind_;
+ }
+
+ void SatisfierProperty::
+ kind (::CIAO::Config_Handlers::SatisfierPropertyKind const& e)
+ {
+ *kind_ = e;
+ }
+
+ // SatisfierProperty
+ //
+ ::XMLSchema::boolean const& SatisfierProperty::
+ dynamic () const
+ {
+ return *dynamic_;
+ }
+
+ void SatisfierProperty::
+ dynamic (::XMLSchema::boolean const& e)
+ {
+ *dynamic_ = e;
+ }
+
+ // SatisfierProperty
+ //
+ ::CIAO::Config_Handlers::Any const& SatisfierProperty::
+ value () const
+ {
+ return *value_;
+ }
+
+ void SatisfierProperty::
+ value (::CIAO::Config_Handlers::Any const& e)
+ {
+ *value_ = e;
+ }
+
+
+ // Resource
+ //
+
+ Resource::
+ Resource (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& resourceType__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ resourceType_ (resourceType__),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Resource::
+ Resource (Resource const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ resourceType_ (s.resourceType_),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Resource& Resource::
+ operator= (Resource const& s)
+ {
+ name (*s.name_);
+
+ resourceType_ = s.resourceType_;
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // Resource
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Resource::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Resource::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Resource
+ //
+ Resource::resourceType_iterator Resource::
+ begin_resourceType ()
+ {
+ return resourceType_.begin ();
+ }
+
+ Resource::resourceType_iterator Resource::
+ end_resourceType ()
+ {
+ return resourceType_.end ();
+ }
+
+ Resource::resourceType_const_iterator Resource::
+ begin_resourceType () const
+ {
+ return resourceType_.begin ();
+ }
+
+ Resource::resourceType_const_iterator Resource::
+ end_resourceType () const
+ {
+ return resourceType_.end ();
+ }
+
+ void Resource::
+ add_resourceType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ resourceType_.push_back (e);
+ }
+
+ size_t Resource::
+ count_resourceType(void) const
+ {
+ return resourceType_.size ();
+ }
+
+ // Resource
+ //
+ Resource::property_iterator Resource::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ Resource::property_iterator Resource::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ Resource::property_const_iterator Resource::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ Resource::property_const_iterator Resource::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void Resource::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t Resource::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // Requirement
+ //
+
+ Requirement::
+ Requirement (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (resourceType__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ resourceType_->container (this);
+ }
+
+ Requirement::
+ Requirement (Requirement const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceType_)),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ name_->container (this);
+ resourceType_->container (this);
+ }
+
+ Requirement& Requirement::
+ operator= (Requirement const& s)
+ {
+ name (*s.name_);
+
+ resourceType (*s.resourceType_);
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // Requirement
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Requirement::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Requirement::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Requirement
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Requirement::
+ resourceType () const
+ {
+ return *resourceType_;
+ }
+
+ void Requirement::
+ resourceType (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *resourceType_ = e;
+ }
+
+ // Requirement
+ //
+ Requirement::property_iterator Requirement::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ Requirement::property_iterator Requirement::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ Requirement::property_const_iterator Requirement::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ Requirement::property_const_iterator Requirement::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void Requirement::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t Requirement::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // ResourceDeploymentDescription
+ //
+
+ ResourceDeploymentDescription::
+ ResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& requirementName__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName__)
+ :
+ requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (requirementName__)),
+ resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (resourceName__)),
+ regulator__ ()
+ {
+ requirementName_->container (this);
+ resourceName_->container (this);
+ }
+
+ ResourceDeploymentDescription::
+ ResourceDeploymentDescription (ResourceDeploymentDescription const& s)
+ :
+ ::XSCRT::Type (),
+ requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requirementName_)),
+ resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceName_)),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ requirementName_->container (this);
+ resourceName_->container (this);
+ }
+
+ ResourceDeploymentDescription& ResourceDeploymentDescription::
+ operator= (ResourceDeploymentDescription const& s)
+ {
+ requirementName (*s.requirementName_);
+
+ resourceName (*s.resourceName_);
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // ResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ResourceDeploymentDescription::
+ requirementName () const
+ {
+ return *requirementName_;
+ }
+
+ void ResourceDeploymentDescription::
+ requirementName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *requirementName_ = e;
+ }
+
+ // ResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ResourceDeploymentDescription::
+ resourceName () const
+ {
+ return *resourceName_;
+ }
+
+ void ResourceDeploymentDescription::
+ resourceName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *resourceName_ = e;
+ }
+
+ // ResourceDeploymentDescription
+ //
+ ResourceDeploymentDescription::property_iterator ResourceDeploymentDescription::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ ResourceDeploymentDescription::property_iterator ResourceDeploymentDescription::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ ResourceDeploymentDescription::property_const_iterator ResourceDeploymentDescription::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ ResourceDeploymentDescription::property_const_iterator ResourceDeploymentDescription::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void ResourceDeploymentDescription::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t ResourceDeploymentDescription::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // ArtifactDeploymentDescription
+ //
+
+ ArtifactDeploymentDescription::
+ ArtifactDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& node__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ node_->container (this);
+ }
+
+ ArtifactDeploymentDescription::
+ ArtifactDeploymentDescription (ArtifactDeploymentDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ source_ (s.source_),
+ node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)),
+ location_ (s.location_),
+ execParameter_ (s.execParameter_),
+ deployRequirement_ (s.deployRequirement_),
+ deployedResource_ (s.deployedResource_),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
+ regulator__ ()
+ {
+ name_->container (this);
+ node_->container (this);
+ if (id_.get ()) id_->container (this);
+ }
+
+ ArtifactDeploymentDescription& ArtifactDeploymentDescription::
+ operator= (ArtifactDeploymentDescription const& s)
+ {
+ name (*s.name_);
+
+ source_ = s.source_;
+
+ node (*s.node_);
+
+ location_ = s.location_;
+
+ execParameter_ = s.execParameter_;
+
+ deployRequirement_ = s.deployRequirement_;
+
+ deployedResource_ = s.deployedResource_;
+
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ArtifactDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ArtifactDeploymentDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void ArtifactDeploymentDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ ArtifactDeploymentDescription::source_iterator ArtifactDeploymentDescription::
+ begin_source ()
+ {
+ return source_.begin ();
+ }
+
+ ArtifactDeploymentDescription::source_iterator ArtifactDeploymentDescription::
+ end_source ()
+ {
+ return source_.end ();
+ }
+
+ ArtifactDeploymentDescription::source_const_iterator ArtifactDeploymentDescription::
+ begin_source () const
+ {
+ return source_.begin ();
+ }
+
+ ArtifactDeploymentDescription::source_const_iterator ArtifactDeploymentDescription::
+ end_source () const
+ {
+ return source_.end ();
+ }
+
+ void ArtifactDeploymentDescription::
+ add_source (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ source_.push_back (e);
+ }
+
+ size_t ArtifactDeploymentDescription::
+ count_source(void) const
+ {
+ return source_.size ();
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ArtifactDeploymentDescription::
+ node () const
+ {
+ return *node_;
+ }
+
+ void ArtifactDeploymentDescription::
+ node (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *node_ = e;
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ ArtifactDeploymentDescription::location_iterator ArtifactDeploymentDescription::
+ begin_location ()
+ {
+ return location_.begin ();
+ }
+
+ ArtifactDeploymentDescription::location_iterator ArtifactDeploymentDescription::
+ end_location ()
+ {
+ return location_.end ();
+ }
+
+ ArtifactDeploymentDescription::location_const_iterator ArtifactDeploymentDescription::
+ begin_location () const
+ {
+ return location_.begin ();
+ }
+
+ ArtifactDeploymentDescription::location_const_iterator ArtifactDeploymentDescription::
+ end_location () const
+ {
+ return location_.end ();
+ }
+
+ void ArtifactDeploymentDescription::
+ add_location (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ location_.push_back (e);
+ }
+
+ size_t ArtifactDeploymentDescription::
+ count_location(void) const
+ {
+ return location_.size ();
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ ArtifactDeploymentDescription::execParameter_iterator ArtifactDeploymentDescription::
+ begin_execParameter ()
+ {
+ return execParameter_.begin ();
+ }
+
+ ArtifactDeploymentDescription::execParameter_iterator ArtifactDeploymentDescription::
+ end_execParameter ()
+ {
+ return execParameter_.end ();
+ }
+
+ ArtifactDeploymentDescription::execParameter_const_iterator ArtifactDeploymentDescription::
+ begin_execParameter () const
+ {
+ return execParameter_.begin ();
+ }
+
+ ArtifactDeploymentDescription::execParameter_const_iterator ArtifactDeploymentDescription::
+ end_execParameter () const
+ {
+ return execParameter_.end ();
+ }
+
+ void ArtifactDeploymentDescription::
+ add_execParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ execParameter_.push_back (e);
+ }
+
+ size_t ArtifactDeploymentDescription::
+ count_execParameter(void) const
+ {
+ return execParameter_.size ();
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ ArtifactDeploymentDescription::deployRequirement_iterator ArtifactDeploymentDescription::
+ begin_deployRequirement ()
+ {
+ return deployRequirement_.begin ();
+ }
+
+ ArtifactDeploymentDescription::deployRequirement_iterator ArtifactDeploymentDescription::
+ end_deployRequirement ()
+ {
+ return deployRequirement_.end ();
+ }
+
+ ArtifactDeploymentDescription::deployRequirement_const_iterator ArtifactDeploymentDescription::
+ begin_deployRequirement () const
+ {
+ return deployRequirement_.begin ();
+ }
+
+ ArtifactDeploymentDescription::deployRequirement_const_iterator ArtifactDeploymentDescription::
+ end_deployRequirement () const
+ {
+ return deployRequirement_.end ();
+ }
+
+ void ArtifactDeploymentDescription::
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ deployRequirement_.push_back (e);
+ }
+
+ size_t ArtifactDeploymentDescription::
+ count_deployRequirement(void) const
+ {
+ return deployRequirement_.size ();
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ ArtifactDeploymentDescription::deployedResource_iterator ArtifactDeploymentDescription::
+ begin_deployedResource ()
+ {
+ return deployedResource_.begin ();
+ }
+
+ ArtifactDeploymentDescription::deployedResource_iterator ArtifactDeploymentDescription::
+ end_deployedResource ()
+ {
+ return deployedResource_.end ();
+ }
+
+ ArtifactDeploymentDescription::deployedResource_const_iterator ArtifactDeploymentDescription::
+ begin_deployedResource () const
+ {
+ return deployedResource_.begin ();
+ }
+
+ ArtifactDeploymentDescription::deployedResource_const_iterator ArtifactDeploymentDescription::
+ end_deployedResource () const
+ {
+ return deployedResource_.end ();
+ }
+
+ void ArtifactDeploymentDescription::
+ add_deployedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > const& e)
+ {
+ deployedResource_.push_back (e);
+ }
+
+ size_t ArtifactDeploymentDescription::
+ count_deployedResource(void) const
+ {
+ return deployedResource_.size ();
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ bool ArtifactDeploymentDescription::
+ id_p () const
+ {
+ return id_.get () != 0;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR > const& ArtifactDeploymentDescription::
+ id () const
+ {
+ return *id_;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR >& ArtifactDeploymentDescription::
+ id ()
+ {
+ return *id_;
+ }
+
+ void ArtifactDeploymentDescription::
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ {
+ if (id_.get ())
+ {
+ *id_ = e;
+ }
+
+ else
+ {
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
+ }
+ }
+
+
+ // MonolithicDeploymentDescription
+ //
+
+ MonolithicDeploymentDescription::
+ MonolithicDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ MonolithicDeploymentDescription::
+ MonolithicDeploymentDescription (MonolithicDeploymentDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ source_ (s.source_),
+ artifact_ (s.artifact_),
+ execParameter_ (s.execParameter_),
+ deployRequirement_ (s.deployRequirement_),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (id_.get ()) id_->container (this);
+ }
+
+ MonolithicDeploymentDescription& MonolithicDeploymentDescription::
+ operator= (MonolithicDeploymentDescription const& s)
+ {
+ name (*s.name_);
+
+ source_ = s.source_;
+
+ artifact_ = s.artifact_;
+
+ execParameter_ = s.execParameter_;
+
+ deployRequirement_ = s.deployRequirement_;
+
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // MonolithicDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& MonolithicDeploymentDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void MonolithicDeploymentDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ MonolithicDeploymentDescription::source_iterator MonolithicDeploymentDescription::
+ begin_source ()
+ {
+ return source_.begin ();
+ }
+
+ MonolithicDeploymentDescription::source_iterator MonolithicDeploymentDescription::
+ end_source ()
+ {
+ return source_.end ();
+ }
+
+ MonolithicDeploymentDescription::source_const_iterator MonolithicDeploymentDescription::
+ begin_source () const
+ {
+ return source_.begin ();
+ }
+
+ MonolithicDeploymentDescription::source_const_iterator MonolithicDeploymentDescription::
+ end_source () const
+ {
+ return source_.end ();
+ }
+
+ void MonolithicDeploymentDescription::
+ add_source (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ source_.push_back (e);
+ }
+
+ size_t MonolithicDeploymentDescription::
+ count_source(void) const
+ {
+ return source_.size ();
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ MonolithicDeploymentDescription::artifact_iterator MonolithicDeploymentDescription::
+ begin_artifact ()
+ {
+ return artifact_.begin ();
+ }
+
+ MonolithicDeploymentDescription::artifact_iterator MonolithicDeploymentDescription::
+ end_artifact ()
+ {
+ return artifact_.end ();
+ }
+
+ MonolithicDeploymentDescription::artifact_const_iterator MonolithicDeploymentDescription::
+ begin_artifact () const
+ {
+ return artifact_.begin ();
+ }
+
+ MonolithicDeploymentDescription::artifact_const_iterator MonolithicDeploymentDescription::
+ end_artifact () const
+ {
+ return artifact_.end ();
+ }
+
+ void MonolithicDeploymentDescription::
+ add_artifact (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > const& e)
+ {
+ artifact_.push_back (e);
+ }
+
+ size_t MonolithicDeploymentDescription::
+ count_artifact(void) const
+ {
+ return artifact_.size ();
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ MonolithicDeploymentDescription::execParameter_iterator MonolithicDeploymentDescription::
+ begin_execParameter ()
+ {
+ return execParameter_.begin ();
+ }
+
+ MonolithicDeploymentDescription::execParameter_iterator MonolithicDeploymentDescription::
+ end_execParameter ()
+ {
+ return execParameter_.end ();
+ }
+
+ MonolithicDeploymentDescription::execParameter_const_iterator MonolithicDeploymentDescription::
+ begin_execParameter () const
+ {
+ return execParameter_.begin ();
+ }
+
+ MonolithicDeploymentDescription::execParameter_const_iterator MonolithicDeploymentDescription::
+ end_execParameter () const
+ {
+ return execParameter_.end ();
+ }
+
+ void MonolithicDeploymentDescription::
+ add_execParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ execParameter_.push_back (e);
+ }
+
+ size_t MonolithicDeploymentDescription::
+ count_execParameter(void) const
+ {
+ return execParameter_.size ();
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ MonolithicDeploymentDescription::deployRequirement_iterator MonolithicDeploymentDescription::
+ begin_deployRequirement ()
+ {
+ return deployRequirement_.begin ();
+ }
+
+ MonolithicDeploymentDescription::deployRequirement_iterator MonolithicDeploymentDescription::
+ end_deployRequirement ()
+ {
+ return deployRequirement_.end ();
+ }
+
+ MonolithicDeploymentDescription::deployRequirement_const_iterator MonolithicDeploymentDescription::
+ begin_deployRequirement () const
+ {
+ return deployRequirement_.begin ();
+ }
+
+ MonolithicDeploymentDescription::deployRequirement_const_iterator MonolithicDeploymentDescription::
+ end_deployRequirement () const
+ {
+ return deployRequirement_.end ();
+ }
+
+ void MonolithicDeploymentDescription::
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ deployRequirement_.push_back (e);
+ }
+
+ size_t MonolithicDeploymentDescription::
+ count_deployRequirement(void) const
+ {
+ return deployRequirement_.size ();
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ bool MonolithicDeploymentDescription::
+ id_p () const
+ {
+ return id_.get () != 0;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR > const& MonolithicDeploymentDescription::
+ id () const
+ {
+ return *id_;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR >& MonolithicDeploymentDescription::
+ id ()
+ {
+ return *id_;
+ }
+
+ void MonolithicDeploymentDescription::
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ {
+ if (id_.get ())
+ {
+ *id_ = e;
+ }
+
+ else
+ {
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
+ }
+ }
+
+
+ // ResourceUsageKind
+ //
+
+ ResourceUsageKind::Value ResourceUsageKind::
+ integral () const
+ {
+ return v_;
+ }
+
+ bool
+ operator== (::CIAO::Config_Handlers::ResourceUsageKind const& a, ::CIAO::Config_Handlers::ResourceUsageKind const& b)
+ {
+ return a.v_ == b.v_;
+ }
+
+ bool
+ operator!= (::CIAO::Config_Handlers::ResourceUsageKind const& a, ::CIAO::Config_Handlers::ResourceUsageKind const& b)
+ {
+ return a.v_ != b.v_;
+ }
+
+ ResourceUsageKind::
+ ResourceUsageKind (ResourceUsageKind::Value v)
+ : v_ (v)
+ {
+ }
+
+ // InstanceResourceDeploymentDescription
+ //
+
+ InstanceResourceDeploymentDescription::
+ InstanceResourceDeploymentDescription (::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage__,
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName__)
+ :
+ resourceUsage_ (new ::CIAO::Config_Handlers::ResourceUsageKind (resourceUsage__)),
+ requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (requirementName__)),
+ resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (resourceName__)),
+ regulator__ ()
+ {
+ resourceUsage_->container (this);
+ requirementName_->container (this);
+ resourceName_->container (this);
+ }
+
+ InstanceResourceDeploymentDescription::
+ InstanceResourceDeploymentDescription (InstanceResourceDeploymentDescription const& s)
+ :
+ ::XSCRT::Type (),
+ resourceUsage_ (new ::CIAO::Config_Handlers::ResourceUsageKind (*s.resourceUsage_)),
+ requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requirementName_)),
+ resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceName_)),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ resourceUsage_->container (this);
+ requirementName_->container (this);
+ resourceName_->container (this);
+ }
+
+ InstanceResourceDeploymentDescription& InstanceResourceDeploymentDescription::
+ operator= (InstanceResourceDeploymentDescription const& s)
+ {
+ resourceUsage (*s.resourceUsage_);
+
+ requirementName (*s.requirementName_);
+
+ resourceName (*s.resourceName_);
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // InstanceResourceDeploymentDescription
+ //
+ ::CIAO::Config_Handlers::ResourceUsageKind const& InstanceResourceDeploymentDescription::
+ resourceUsage () const
+ {
+ return *resourceUsage_;
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceUsage (::CIAO::Config_Handlers::ResourceUsageKind const& e)
+ {
+ *resourceUsage_ = e;
+ }
+
+ // InstanceResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& InstanceResourceDeploymentDescription::
+ requirementName () const
+ {
+ return *requirementName_;
+ }
+
+ void InstanceResourceDeploymentDescription::
+ requirementName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *requirementName_ = e;
+ }
+
+ // InstanceResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& InstanceResourceDeploymentDescription::
+ resourceName () const
+ {
+ return *resourceName_;
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *resourceName_ = e;
+ }
+
+ // InstanceResourceDeploymentDescription
+ //
+ InstanceResourceDeploymentDescription::property_iterator InstanceResourceDeploymentDescription::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ InstanceResourceDeploymentDescription::property_iterator InstanceResourceDeploymentDescription::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ InstanceResourceDeploymentDescription::property_const_iterator InstanceResourceDeploymentDescription::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ InstanceResourceDeploymentDescription::property_const_iterator InstanceResourceDeploymentDescription::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void InstanceResourceDeploymentDescription::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t InstanceResourceDeploymentDescription::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // InstanceDeploymentDescription
+ //
+
+ InstanceDeploymentDescription::
+ InstanceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& node__,
+ ::XMLSchema::string< ACE_TCHAR > const& source__,
+ ::CIAO::Config_Handlers::IdRef const& implementation__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)),
+ source_ (new ::XMLSchema::string< ACE_TCHAR > (source__)),
+ implementation_ (new ::CIAO::Config_Handlers::IdRef (implementation__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ node_->container (this);
+ source_->container (this);
+ implementation_->container (this);
+ }
+
+ InstanceDeploymentDescription::
+ InstanceDeploymentDescription (InstanceDeploymentDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)),
+ source_ (new ::XMLSchema::string< ACE_TCHAR > (*s.source_)),
+ implementation_ (new ::CIAO::Config_Handlers::IdRef (*s.implementation_)),
+ configProperty_ (s.configProperty_),
+ deployedResource_ (s.deployedResource_),
+ 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__ ()
+ {
+ name_->container (this);
+ node_->container (this);
+ source_->container (this);
+ implementation_->container (this);
+ if (deployedSharedResource_.get ()) deployedSharedResource_->container (this);
+ if (id_.get ()) id_->container (this);
+ }
+
+ InstanceDeploymentDescription& InstanceDeploymentDescription::
+ operator= (InstanceDeploymentDescription const& s)
+ {
+ name (*s.name_);
+
+ node (*s.node_);
+
+ source (*s.source_);
+
+ implementation (*s.implementation_);
+
+ configProperty_ = s.configProperty_;
+
+ deployedResource_ = s.deployedResource_;
+
+ if (s.deployedSharedResource_.get ())
+ deployedSharedResource (*(s.deployedSharedResource_));
+ else
+ deployedSharedResource_.reset (0);
+
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // InstanceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& InstanceDeploymentDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void InstanceDeploymentDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // InstanceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& InstanceDeploymentDescription::
+ node () const
+ {
+ return *node_;
+ }
+
+ void InstanceDeploymentDescription::
+ node (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *node_ = e;
+ }
+
+ // InstanceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& InstanceDeploymentDescription::
+ source () const
+ {
+ return *source_;
+ }
+
+ void InstanceDeploymentDescription::
+ source (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *source_ = e;
+ }
+
+ // InstanceDeploymentDescription
+ //
+ ::CIAO::Config_Handlers::IdRef const& InstanceDeploymentDescription::
+ implementation () const
+ {
+ return *implementation_;
+ }
+
+ void InstanceDeploymentDescription::
+ implementation (::CIAO::Config_Handlers::IdRef const& e)
+ {
+ *implementation_ = e;
+ }
+
+ // InstanceDeploymentDescription
+ //
+ InstanceDeploymentDescription::configProperty_iterator InstanceDeploymentDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ InstanceDeploymentDescription::configProperty_iterator InstanceDeploymentDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ InstanceDeploymentDescription::configProperty_const_iterator InstanceDeploymentDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ InstanceDeploymentDescription::configProperty_const_iterator InstanceDeploymentDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void InstanceDeploymentDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t InstanceDeploymentDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // InstanceDeploymentDescription
+ //
+ InstanceDeploymentDescription::deployedResource_iterator InstanceDeploymentDescription::
+ begin_deployedResource ()
+ {
+ return deployedResource_.begin ();
+ }
+
+ InstanceDeploymentDescription::deployedResource_iterator InstanceDeploymentDescription::
+ end_deployedResource ()
+ {
+ return deployedResource_.end ();
+ }
+
+ InstanceDeploymentDescription::deployedResource_const_iterator InstanceDeploymentDescription::
+ begin_deployedResource () const
+ {
+ return deployedResource_.begin ();
+ }
+
+ InstanceDeploymentDescription::deployedResource_const_iterator InstanceDeploymentDescription::
+ end_deployedResource () const
+ {
+ return deployedResource_.end ();
+ }
+
+ void InstanceDeploymentDescription::
+ add_deployedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > const& e)
+ {
+ deployedResource_.push_back (e);
+ }
+
+ size_t InstanceDeploymentDescription::
+ count_deployedResource(void) const
+ {
+ return deployedResource_.size ();
+ }
+
+ // InstanceDeploymentDescription
+ //
+ bool InstanceDeploymentDescription::
+ deployedSharedResource_p () const
+ {
+ return deployedSharedResource_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& InstanceDeploymentDescription::
+ deployedSharedResource () const
+ {
+ return *deployedSharedResource_;
+ }
+
+ void InstanceDeploymentDescription::
+ deployedSharedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& e)
+ {
+ if (deployedSharedResource_.get ())
+ {
+ *deployedSharedResource_ = e;
+ }
+
+ else
+ {
+ deployedSharedResource_ = ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > (new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (e));
+ deployedSharedResource_->container (this);
+ }
+ }
+
+ // InstanceDeploymentDescription
+ //
+ bool InstanceDeploymentDescription::
+ id_p () const
+ {
+ return id_.get () != 0;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR > const& InstanceDeploymentDescription::
+ id () const
+ {
+ return *id_;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR >& InstanceDeploymentDescription::
+ id ()
+ {
+ return *id_;
+ }
+
+ void InstanceDeploymentDescription::
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ {
+ if (id_.get ())
+ {
+ *id_ = e;
+ }
+
+ else
+ {
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
+ }
+ }
+
+
+ // CCMComponentPortKind
+ //
+
+ CCMComponentPortKind::Value CCMComponentPortKind::
+ integral () const
+ {
+ return v_;
+ }
+
+ bool
+ operator== (::CIAO::Config_Handlers::CCMComponentPortKind const& a, ::CIAO::Config_Handlers::CCMComponentPortKind const& b)
+ {
+ return a.v_ == b.v_;
+ }
+
+ bool
+ operator!= (::CIAO::Config_Handlers::CCMComponentPortKind const& a, ::CIAO::Config_Handlers::CCMComponentPortKind const& b)
+ {
+ return a.v_ != b.v_;
+ }
+
+ CCMComponentPortKind::
+ CCMComponentPortKind (CCMComponentPortKind::Value v)
+ : v_ (v)
+ {
+ }
+
+ // ComponentPortDescription
+ //
+
+ ComponentPortDescription::
+ ComponentPortDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::boolean const& provider__,
+ ::XMLSchema::boolean const& exclusiveProvider__,
+ ::XMLSchema::boolean const& exclusiveUser__,
+ ::XMLSchema::boolean const& optional__,
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& kind__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ provider_ (new ::XMLSchema::boolean (provider__)),
+ exclusiveProvider_ (new ::XMLSchema::boolean (exclusiveProvider__)),
+ exclusiveUser_ (new ::XMLSchema::boolean (exclusiveUser__)),
+ optional_ (new ::XMLSchema::boolean (optional__)),
+ kind_ (new ::CIAO::Config_Handlers::CCMComponentPortKind (kind__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ provider_->container (this);
+ exclusiveProvider_->container (this);
+ exclusiveUser_->container (this);
+ optional_->container (this);
+ kind_->container (this);
+ }
+
+ ComponentPortDescription::
+ ComponentPortDescription (ComponentPortDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ specificType_ (s.specificType_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.specificType_) : 0),
+ supportedType_ (s.supportedType_),
+ provider_ (new ::XMLSchema::boolean (*s.provider_)),
+ exclusiveProvider_ (new ::XMLSchema::boolean (*s.exclusiveProvider_)),
+ exclusiveUser_ (new ::XMLSchema::boolean (*s.exclusiveUser_)),
+ optional_ (new ::XMLSchema::boolean (*s.optional_)),
+ kind_ (new ::CIAO::Config_Handlers::CCMComponentPortKind (*s.kind_)),
+ templateParam_ (s.templateParam_),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (specificType_.get ()) specificType_->container (this);
+ provider_->container (this);
+ exclusiveProvider_->container (this);
+ exclusiveUser_->container (this);
+ optional_->container (this);
+ kind_->container (this);
+ }
+
+ ComponentPortDescription& ComponentPortDescription::
+ operator= (ComponentPortDescription const& s)
+ {
+ name (*s.name_);
+
+ if (s.specificType_.get ())
+ specificType (*(s.specificType_));
+ else
+ specificType_.reset (0);
+
+ supportedType_ = s.supportedType_;
+
+ provider (*s.provider_);
+
+ exclusiveProvider (*s.exclusiveProvider_);
+
+ exclusiveUser (*s.exclusiveUser_);
+
+ optional (*s.optional_);
+
+ kind (*s.kind_);
+
+ templateParam_ = s.templateParam_;
+
+ return *this;
+ }
+
+
+ // ComponentPortDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPortDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void ComponentPortDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // ComponentPortDescription
+ //
+ bool ComponentPortDescription::
+ specificType_p () const
+ {
+ return specificType_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPortDescription::
+ specificType () const
+ {
+ return *specificType_;
+ }
+
+ void ComponentPortDescription::
+ specificType (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (specificType_.get ())
+ {
+ *specificType_ = e;
+ }
+
+ else
+ {
+ specificType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ specificType_->container (this);
+ }
+ }
+
+ // ComponentPortDescription
+ //
+ ComponentPortDescription::supportedType_iterator ComponentPortDescription::
+ begin_supportedType ()
+ {
+ return supportedType_.begin ();
+ }
+
+ ComponentPortDescription::supportedType_iterator ComponentPortDescription::
+ end_supportedType ()
+ {
+ return supportedType_.end ();
+ }
+
+ ComponentPortDescription::supportedType_const_iterator ComponentPortDescription::
+ begin_supportedType () const
+ {
+ return supportedType_.begin ();
+ }
+
+ ComponentPortDescription::supportedType_const_iterator ComponentPortDescription::
+ end_supportedType () const
+ {
+ return supportedType_.end ();
+ }
+
+ void ComponentPortDescription::
+ add_supportedType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ supportedType_.push_back (e);
+ }
+
+ size_t ComponentPortDescription::
+ count_supportedType(void) const
+ {
+ return supportedType_.size ();
+ }
+
+ // ComponentPortDescription
+ //
+ ::XMLSchema::boolean const& ComponentPortDescription::
+ provider () const
+ {
+ return *provider_;
+ }
+
+ void ComponentPortDescription::
+ provider (::XMLSchema::boolean const& e)
+ {
+ *provider_ = e;
+ }
+
+ // ComponentPortDescription
+ //
+ ::XMLSchema::boolean const& ComponentPortDescription::
+ exclusiveProvider () const
+ {
+ return *exclusiveProvider_;
+ }
+
+ void ComponentPortDescription::
+ exclusiveProvider (::XMLSchema::boolean const& e)
+ {
+ *exclusiveProvider_ = e;
+ }
+
+ // ComponentPortDescription
+ //
+ ::XMLSchema::boolean const& ComponentPortDescription::
+ exclusiveUser () const
+ {
+ return *exclusiveUser_;
+ }
+
+ void ComponentPortDescription::
+ exclusiveUser (::XMLSchema::boolean const& e)
+ {
+ *exclusiveUser_ = e;
+ }
+
+ // ComponentPortDescription
+ //
+ ::XMLSchema::boolean const& ComponentPortDescription::
+ optional () const
+ {
+ return *optional_;
+ }
+
+ void ComponentPortDescription::
+ optional (::XMLSchema::boolean const& e)
+ {
+ *optional_ = e;
+ }
+
+ // ComponentPortDescription
+ //
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& ComponentPortDescription::
+ kind () const
+ {
+ return *kind_;
+ }
+
+ void ComponentPortDescription::
+ kind (::CIAO::Config_Handlers::CCMComponentPortKind const& e)
+ {
+ *kind_ = e;
+ }
+
+ // ComponentPortDescription
+ //
+ ComponentPortDescription::templateParam_iterator ComponentPortDescription::
+ begin_templateParam ()
+ {
+ return templateParam_.begin ();
+ }
+
+ ComponentPortDescription::templateParam_iterator ComponentPortDescription::
+ end_templateParam ()
+ {
+ return templateParam_.end ();
+ }
+
+ ComponentPortDescription::templateParam_const_iterator ComponentPortDescription::
+ begin_templateParam () const
+ {
+ return templateParam_.begin ();
+ }
+
+ ComponentPortDescription::templateParam_const_iterator ComponentPortDescription::
+ end_templateParam () const
+ {
+ return templateParam_.end ();
+ }
+
+ void ComponentPortDescription::
+ add_templateParam (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ templateParam_.push_back (e);
+ }
+
+ size_t ComponentPortDescription::
+ count_templateParam(void) const
+ {
+ return templateParam_.size ();
+ }
+
+
+ // ComponentPropertyDescription
+ //
+
+ ComponentPropertyDescription::
+ ComponentPropertyDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::DataType const& type__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ type_ (new ::CIAO::Config_Handlers::DataType (type__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ type_->container (this);
+ }
+
+ ComponentPropertyDescription::
+ ComponentPropertyDescription (ComponentPropertyDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ type_ (new ::CIAO::Config_Handlers::DataType (*s.type_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ type_->container (this);
+ }
+
+ ComponentPropertyDescription& ComponentPropertyDescription::
+ operator= (ComponentPropertyDescription const& s)
+ {
+ name (*s.name_);
+
+ type (*s.type_);
+
+ return *this;
+ }
+
+
+ // ComponentPropertyDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPropertyDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void ComponentPropertyDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // ComponentPropertyDescription
+ //
+ ::CIAO::Config_Handlers::DataType const& ComponentPropertyDescription::
+ type () const
+ {
+ return *type_;
+ }
+
+ void ComponentPropertyDescription::
+ type (::CIAO::Config_Handlers::DataType const& e)
+ {
+ *type_ = e;
+ }
+
+
+ // ComponentExternalPortEndpoint
+ //
+
+ ComponentExternalPortEndpoint::
+ ComponentExternalPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__)
+ :
+ portName_ (new ::XMLSchema::string< ACE_TCHAR > (portName__)),
+ regulator__ ()
+ {
+ portName_->container (this);
+ }
+
+ ComponentExternalPortEndpoint::
+ ComponentExternalPortEndpoint (ComponentExternalPortEndpoint const& s)
+ :
+ ::XSCRT::Type (),
+ portName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.portName_)),
+ regulator__ ()
+ {
+ portName_->container (this);
+ }
+
+ ComponentExternalPortEndpoint& ComponentExternalPortEndpoint::
+ operator= (ComponentExternalPortEndpoint const& s)
+ {
+ portName (*s.portName_);
+
+ return *this;
+ }
+
+
+ // ComponentExternalPortEndpoint
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentExternalPortEndpoint::
+ portName () const
+ {
+ return *portName_;
+ }
+
+ void ComponentExternalPortEndpoint::
+ portName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *portName_ = e;
+ }
+
+
+ // PlanSubcomponentPortEndpoint
+ //
+
+ PlanSubcomponentPortEndpoint::
+ PlanSubcomponentPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__,
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& kind__,
+ ::CIAO::Config_Handlers::IdRef const& instance__)
+ :
+ portName_ (new ::XMLSchema::string< ACE_TCHAR > (portName__)),
+ kind_ (new ::CIAO::Config_Handlers::CCMComponentPortKind (kind__)),
+ instance_ (new ::CIAO::Config_Handlers::IdRef (instance__)),
+ regulator__ ()
+ {
+ portName_->container (this);
+ kind_->container (this);
+ instance_->container (this);
+ }
+
+ PlanSubcomponentPortEndpoint::
+ PlanSubcomponentPortEndpoint (PlanSubcomponentPortEndpoint const& s)
+ :
+ ::XSCRT::Type (),
+ portName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.portName_)),
+ provider_ (s.provider_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.provider_) : 0),
+ kind_ (new ::CIAO::Config_Handlers::CCMComponentPortKind (*s.kind_)),
+ instance_ (new ::CIAO::Config_Handlers::IdRef (*s.instance_)),
+ regulator__ ()
+ {
+ portName_->container (this);
+ if (provider_.get ()) provider_->container (this);
+ kind_->container (this);
+ instance_->container (this);
+ }
+
+ PlanSubcomponentPortEndpoint& PlanSubcomponentPortEndpoint::
+ operator= (PlanSubcomponentPortEndpoint const& s)
+ {
+ portName (*s.portName_);
+
+ if (s.provider_.get ())
+ provider (*(s.provider_));
+ else
+ provider_.reset (0);
+
+ kind (*s.kind_);
+
+ instance (*s.instance_);
+
+ return *this;
+ }
+
+
+ // PlanSubcomponentPortEndpoint
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& PlanSubcomponentPortEndpoint::
+ portName () const
+ {
+ return *portName_;
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ portName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *portName_ = e;
+ }
+
+ // PlanSubcomponentPortEndpoint
+ //
+ bool PlanSubcomponentPortEndpoint::
+ provider_p () const
+ {
+ return provider_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& PlanSubcomponentPortEndpoint::
+ provider () const
+ {
+ return *provider_;
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ provider (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (provider_.get ())
+ {
+ *provider_ = e;
+ }
+
+ else
+ {
+ provider_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ provider_->container (this);
+ }
+ }
+
+ // PlanSubcomponentPortEndpoint
+ //
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& PlanSubcomponentPortEndpoint::
+ kind () const
+ {
+ return *kind_;
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ kind (::CIAO::Config_Handlers::CCMComponentPortKind const& e)
+ {
+ *kind_ = e;
+ }
+
+ // PlanSubcomponentPortEndpoint
+ //
+ ::CIAO::Config_Handlers::IdRef const& PlanSubcomponentPortEndpoint::
+ instance () const
+ {
+ return *instance_;
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ instance (::CIAO::Config_Handlers::IdRef const& e)
+ {
+ *instance_ = e;
+ }
+
+
+ // ExternalReferenceEndpoint
+ //
+
+ ExternalReferenceEndpoint::
+ ExternalReferenceEndpoint (::XMLSchema::string< ACE_TCHAR > const& location__,
+ ::XMLSchema::boolean const& provider__)
+ :
+ location_ (new ::XMLSchema::string< ACE_TCHAR > (location__)),
+ provider_ (new ::XMLSchema::boolean (provider__)),
+ regulator__ ()
+ {
+ location_->container (this);
+ provider_->container (this);
+ }
+
+ ExternalReferenceEndpoint::
+ ExternalReferenceEndpoint (ExternalReferenceEndpoint const& s)
+ :
+ ::XSCRT::Type (),
+ location_ (new ::XMLSchema::string< ACE_TCHAR > (*s.location_)),
+ provider_ (new ::XMLSchema::boolean (*s.provider_)),
+ portName_ (s.portName_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.portName_) : 0),
+ supportedType_ (s.supportedType_),
+ regulator__ ()
+ {
+ location_->container (this);
+ provider_->container (this);
+ if (portName_.get ()) portName_->container (this);
+ }
+
+ ExternalReferenceEndpoint& ExternalReferenceEndpoint::
+ operator= (ExternalReferenceEndpoint const& s)
+ {
+ location (*s.location_);
+
+ provider (*s.provider_);
+
+ if (s.portName_.get ())
+ portName (*(s.portName_));
+ else
+ portName_.reset (0);
+
+ supportedType_ = s.supportedType_;
+
+ return *this;
+ }
+
+
+ // ExternalReferenceEndpoint
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ExternalReferenceEndpoint::
+ location () const
+ {
+ return *location_;
+ }
+
+ void ExternalReferenceEndpoint::
+ location (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *location_ = e;
+ }
+
+ // ExternalReferenceEndpoint
+ //
+ ::XMLSchema::boolean const& ExternalReferenceEndpoint::
+ provider () const
+ {
+ return *provider_;
+ }
+
+ void ExternalReferenceEndpoint::
+ provider (::XMLSchema::boolean const& e)
+ {
+ *provider_ = e;
+ }
+
+ // ExternalReferenceEndpoint
+ //
+ bool ExternalReferenceEndpoint::
+ portName_p () const
+ {
+ return portName_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ExternalReferenceEndpoint::
+ portName () const
+ {
+ return *portName_;
+ }
+
+ void ExternalReferenceEndpoint::
+ portName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (portName_.get ())
+ {
+ *portName_ = e;
+ }
+
+ else
+ {
+ portName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ portName_->container (this);
+ }
+ }
+
+ // ExternalReferenceEndpoint
+ //
+ ExternalReferenceEndpoint::supportedType_iterator ExternalReferenceEndpoint::
+ begin_supportedType ()
+ {
+ return supportedType_.begin ();
+ }
+
+ ExternalReferenceEndpoint::supportedType_iterator ExternalReferenceEndpoint::
+ end_supportedType ()
+ {
+ return supportedType_.end ();
+ }
+
+ ExternalReferenceEndpoint::supportedType_const_iterator ExternalReferenceEndpoint::
+ begin_supportedType () const
+ {
+ return supportedType_.begin ();
+ }
+
+ ExternalReferenceEndpoint::supportedType_const_iterator ExternalReferenceEndpoint::
+ end_supportedType () const
+ {
+ return supportedType_.end ();
+ }
+
+ void ExternalReferenceEndpoint::
+ add_supportedType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ supportedType_.push_back (e);
+ }
+
+ size_t ExternalReferenceEndpoint::
+ count_supportedType(void) const
+ {
+ return supportedType_.size ();
+ }
+
+
+ // ConnectionResourceDeploymentDescription
+ //
+
+ ConnectionResourceDeploymentDescription::
+ ConnectionResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& targetName__,
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName__)
+ :
+ targetName_ (new ::XMLSchema::string< ACE_TCHAR > (targetName__)),
+ requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (requirementName__)),
+ resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (resourceName__)),
+ regulator__ ()
+ {
+ targetName_->container (this);
+ requirementName_->container (this);
+ resourceName_->container (this);
+ }
+
+ ConnectionResourceDeploymentDescription::
+ ConnectionResourceDeploymentDescription (ConnectionResourceDeploymentDescription const& s)
+ :
+ ::XSCRT::Type (),
+ targetName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.targetName_)),
+ requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requirementName_)),
+ resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceName_)),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ targetName_->container (this);
+ requirementName_->container (this);
+ resourceName_->container (this);
+ }
+
+ ConnectionResourceDeploymentDescription& ConnectionResourceDeploymentDescription::
+ operator= (ConnectionResourceDeploymentDescription const& s)
+ {
+ targetName (*s.targetName_);
+
+ requirementName (*s.requirementName_);
+
+ resourceName (*s.resourceName_);
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // ConnectionResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectionResourceDeploymentDescription::
+ targetName () const
+ {
+ return *targetName_;
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ targetName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *targetName_ = e;
+ }
+
+ // ConnectionResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectionResourceDeploymentDescription::
+ requirementName () const
+ {
+ return *requirementName_;
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ requirementName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *requirementName_ = e;
+ }
+
+ // ConnectionResourceDeploymentDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectionResourceDeploymentDescription::
+ resourceName () const
+ {
+ return *resourceName_;
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ resourceName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *resourceName_ = e;
+ }
+
+ // ConnectionResourceDeploymentDescription
+ //
+ ConnectionResourceDeploymentDescription::property_iterator ConnectionResourceDeploymentDescription::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ ConnectionResourceDeploymentDescription::property_iterator ConnectionResourceDeploymentDescription::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ ConnectionResourceDeploymentDescription::property_const_iterator ConnectionResourceDeploymentDescription::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ ConnectionResourceDeploymentDescription::property_const_iterator ConnectionResourceDeploymentDescription::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t ConnectionResourceDeploymentDescription::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // PlanConnectionDescription
+ //
+
+ PlanConnectionDescription::
+ PlanConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ PlanConnectionDescription::
+ PlanConnectionDescription (PlanConnectionDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ source_ (s.source_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.source_) : 0),
+ deployRequirement_ (s.deployRequirement_),
+ externalEndpoint_ (s.externalEndpoint_),
+ internalEndpoint_ (s.internalEndpoint_),
+ externalReference_ (s.externalReference_),
+ deployedResource_ (s.deployedResource_),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (source_.get ()) source_->container (this);
+ }
+
+ PlanConnectionDescription& PlanConnectionDescription::
+ operator= (PlanConnectionDescription const& s)
+ {
+ name (*s.name_);
+
+ if (s.source_.get ())
+ source (*(s.source_));
+ else
+ source_.reset (0);
+
+ deployRequirement_ = s.deployRequirement_;
+
+ externalEndpoint_ = s.externalEndpoint_;
+
+ internalEndpoint_ = s.internalEndpoint_;
+
+ externalReference_ = s.externalReference_;
+
+ deployedResource_ = s.deployedResource_;
+
+ return *this;
+ }
+
+
+ // PlanConnectionDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& PlanConnectionDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void PlanConnectionDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // PlanConnectionDescription
+ //
+ bool PlanConnectionDescription::
+ source_p () const
+ {
+ return source_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& PlanConnectionDescription::
+ source () const
+ {
+ return *source_;
+ }
+
+ void PlanConnectionDescription::
+ source (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (source_.get ())
+ {
+ *source_ = e;
+ }
+
+ else
+ {
+ source_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ source_->container (this);
+ }
+ }
+
+ // PlanConnectionDescription
+ //
+ PlanConnectionDescription::deployRequirement_iterator PlanConnectionDescription::
+ begin_deployRequirement ()
+ {
+ return deployRequirement_.begin ();
+ }
+
+ PlanConnectionDescription::deployRequirement_iterator PlanConnectionDescription::
+ end_deployRequirement ()
+ {
+ return deployRequirement_.end ();
+ }
+
+ PlanConnectionDescription::deployRequirement_const_iterator PlanConnectionDescription::
+ begin_deployRequirement () const
+ {
+ return deployRequirement_.begin ();
+ }
+
+ PlanConnectionDescription::deployRequirement_const_iterator PlanConnectionDescription::
+ end_deployRequirement () const
+ {
+ return deployRequirement_.end ();
+ }
+
+ void PlanConnectionDescription::
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ deployRequirement_.push_back (e);
+ }
+
+ size_t PlanConnectionDescription::
+ count_deployRequirement(void) const
+ {
+ return deployRequirement_.size ();
+ }
+
+ // PlanConnectionDescription
+ //
+ PlanConnectionDescription::externalEndpoint_iterator PlanConnectionDescription::
+ begin_externalEndpoint ()
+ {
+ return externalEndpoint_.begin ();
+ }
+
+ PlanConnectionDescription::externalEndpoint_iterator PlanConnectionDescription::
+ end_externalEndpoint ()
+ {
+ return externalEndpoint_.end ();
+ }
+
+ PlanConnectionDescription::externalEndpoint_const_iterator PlanConnectionDescription::
+ begin_externalEndpoint () const
+ {
+ return externalEndpoint_.begin ();
+ }
+
+ PlanConnectionDescription::externalEndpoint_const_iterator PlanConnectionDescription::
+ end_externalEndpoint () const
+ {
+ return externalEndpoint_.end ();
+ }
+
+ void PlanConnectionDescription::
+ add_externalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& e)
+ {
+ externalEndpoint_.push_back (e);
+ }
+
+ size_t PlanConnectionDescription::
+ count_externalEndpoint(void) const
+ {
+ return externalEndpoint_.size ();
+ }
+
+ // PlanConnectionDescription
+ //
+ PlanConnectionDescription::internalEndpoint_iterator PlanConnectionDescription::
+ begin_internalEndpoint ()
+ {
+ return internalEndpoint_.begin ();
+ }
+
+ PlanConnectionDescription::internalEndpoint_iterator PlanConnectionDescription::
+ end_internalEndpoint ()
+ {
+ return internalEndpoint_.end ();
+ }
+
+ PlanConnectionDescription::internalEndpoint_const_iterator PlanConnectionDescription::
+ begin_internalEndpoint () const
+ {
+ return internalEndpoint_.begin ();
+ }
+
+ PlanConnectionDescription::internalEndpoint_const_iterator PlanConnectionDescription::
+ end_internalEndpoint () const
+ {
+ return internalEndpoint_.end ();
+ }
+
+ void PlanConnectionDescription::
+ add_internalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > const& e)
+ {
+ internalEndpoint_.push_back (e);
+ }
+
+ size_t PlanConnectionDescription::
+ count_internalEndpoint(void) const
+ {
+ return internalEndpoint_.size ();
+ }
+
+ // PlanConnectionDescription
+ //
+ PlanConnectionDescription::externalReference_iterator PlanConnectionDescription::
+ begin_externalReference ()
+ {
+ return externalReference_.begin ();
+ }
+
+ PlanConnectionDescription::externalReference_iterator PlanConnectionDescription::
+ end_externalReference ()
+ {
+ return externalReference_.end ();
+ }
+
+ PlanConnectionDescription::externalReference_const_iterator PlanConnectionDescription::
+ begin_externalReference () const
+ {
+ return externalReference_.begin ();
+ }
+
+ PlanConnectionDescription::externalReference_const_iterator PlanConnectionDescription::
+ end_externalReference () const
+ {
+ return externalReference_.end ();
+ }
+
+ void PlanConnectionDescription::
+ add_externalReference (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& e)
+ {
+ externalReference_.push_back (e);
+ }
+
+ size_t PlanConnectionDescription::
+ count_externalReference(void) const
+ {
+ return externalReference_.size ();
+ }
+
+ // PlanConnectionDescription
+ //
+ PlanConnectionDescription::deployedResource_iterator PlanConnectionDescription::
+ begin_deployedResource ()
+ {
+ return deployedResource_.begin ();
+ }
+
+ PlanConnectionDescription::deployedResource_iterator PlanConnectionDescription::
+ end_deployedResource ()
+ {
+ return deployedResource_.end ();
+ }
+
+ PlanConnectionDescription::deployedResource_const_iterator PlanConnectionDescription::
+ begin_deployedResource () const
+ {
+ return deployedResource_.begin ();
+ }
+
+ PlanConnectionDescription::deployedResource_const_iterator PlanConnectionDescription::
+ end_deployedResource () const
+ {
+ return deployedResource_.end ();
+ }
+
+ void PlanConnectionDescription::
+ add_deployedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > const& e)
+ {
+ deployedResource_.push_back (e);
+ }
+
+ size_t PlanConnectionDescription::
+ count_deployedResource(void) const
+ {
+ return deployedResource_.size ();
+ }
+
+
+ // ImplementationDependency
+ //
+
+ ImplementationDependency::
+ ImplementationDependency (::XMLSchema::string< ACE_TCHAR > const& requiredType__)
+ :
+ requiredType_ (new ::XMLSchema::string< ACE_TCHAR > (requiredType__)),
+ regulator__ ()
+ {
+ requiredType_->container (this);
+ }
+
+ ImplementationDependency::
+ ImplementationDependency (ImplementationDependency const& s)
+ :
+ ::XSCRT::Type (),
+ requiredType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requiredType_)),
+ regulator__ ()
+ {
+ requiredType_->container (this);
+ }
+
+ ImplementationDependency& ImplementationDependency::
+ operator= (ImplementationDependency const& s)
+ {
+ requiredType (*s.requiredType_);
+
+ return *this;
+ }
+
+
+ // ImplementationDependency
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationDependency::
+ requiredType () const
+ {
+ return *requiredType_;
+ }
+
+ void ImplementationDependency::
+ requiredType (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *requiredType_ = e;
+ }
+
+
+ // Capability
+ //
+
+ Capability::
+ Capability (::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Capability::
+ Capability (Capability const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ resourceType_ (s.resourceType_),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Capability& Capability::
+ operator= (Capability const& s)
+ {
+ name (*s.name_);
+
+ resourceType_ = s.resourceType_;
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // Capability
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Capability::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Capability::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Capability
+ //
+ Capability::resourceType_iterator Capability::
+ begin_resourceType ()
+ {
+ return resourceType_.begin ();
+ }
+
+ Capability::resourceType_iterator Capability::
+ end_resourceType ()
+ {
+ return resourceType_.end ();
+ }
+
+ Capability::resourceType_const_iterator Capability::
+ begin_resourceType () const
+ {
+ return resourceType_.begin ();
+ }
+
+ Capability::resourceType_const_iterator Capability::
+ end_resourceType () const
+ {
+ return resourceType_.end ();
+ }
+
+ void Capability::
+ add_resourceType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ resourceType_.push_back (e);
+ }
+
+ size_t Capability::
+ count_resourceType(void) const
+ {
+ return resourceType_.size ();
+ }
+
+ // Capability
+ //
+ Capability::property_iterator Capability::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ Capability::property_iterator Capability::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ Capability::property_const_iterator Capability::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ Capability::property_const_iterator Capability::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void Capability::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t Capability::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // ImplementationRequirement
+ //
+
+ ImplementationRequirement::
+ ImplementationRequirement (::XMLSchema::string< ACE_TCHAR > const& resourceType__,
+ ::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (resourceType__)),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ resourceType_->container (this);
+ name_->container (this);
+ }
+
+ ImplementationRequirement::
+ ImplementationRequirement (ImplementationRequirement const& s)
+ :
+ ::XSCRT::Type (),
+ resourceUsage_ (s.resourceUsage_.get () ? new ::CIAO::Config_Handlers::ResourceUsageKind (*s.resourceUsage_) : 0),
+ resourcePort_ (s.resourcePort_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.resourcePort_) : 0),
+ componentPort_ (s.componentPort_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.componentPort_) : 0),
+ resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceType_)),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ property_ (s.property_),
+ regulator__ ()
+ {
+ if (resourceUsage_.get ()) resourceUsage_->container (this);
+ if (resourcePort_.get ()) resourcePort_->container (this);
+ if (componentPort_.get ()) componentPort_->container (this);
+ resourceType_->container (this);
+ name_->container (this);
+ }
+
+ ImplementationRequirement& ImplementationRequirement::
+ operator= (ImplementationRequirement const& s)
+ {
+ if (s.resourceUsage_.get ())
+ resourceUsage (*(s.resourceUsage_));
+ else
+ resourceUsage_.reset (0);
+
+ if (s.resourcePort_.get ())
+ resourcePort (*(s.resourcePort_));
+ else
+ resourcePort_.reset (0);
+
+ if (s.componentPort_.get ())
+ componentPort (*(s.componentPort_));
+ else
+ componentPort_.reset (0);
+
+ resourceType (*s.resourceType_);
+
+ name (*s.name_);
+
+ property_ = s.property_;
+
+ return *this;
+ }
+
+
+ // ImplementationRequirement
+ //
+ bool ImplementationRequirement::
+ resourceUsage_p () const
+ {
+ return resourceUsage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ResourceUsageKind const& ImplementationRequirement::
+ resourceUsage () const
+ {
+ return *resourceUsage_;
+ }
+
+ void ImplementationRequirement::
+ resourceUsage (::CIAO::Config_Handlers::ResourceUsageKind const& e)
+ {
+ if (resourceUsage_.get ())
+ {
+ *resourceUsage_ = e;
+ }
+
+ else
+ {
+ resourceUsage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > (new ::CIAO::Config_Handlers::ResourceUsageKind (e));
+ resourceUsage_->container (this);
+ }
+ }
+
+ // ImplementationRequirement
+ //
+ bool ImplementationRequirement::
+ resourcePort_p () const
+ {
+ return resourcePort_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationRequirement::
+ resourcePort () const
+ {
+ return *resourcePort_;
+ }
+
+ void ImplementationRequirement::
+ resourcePort (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (resourcePort_.get ())
+ {
+ *resourcePort_ = e;
+ }
+
+ else
+ {
+ resourcePort_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourcePort_->container (this);
+ }
+ }
+
+ // ImplementationRequirement
+ //
+ bool ImplementationRequirement::
+ componentPort_p () const
+ {
+ return componentPort_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationRequirement::
+ componentPort () const
+ {
+ return *componentPort_;
+ }
+
+ void ImplementationRequirement::
+ componentPort (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (componentPort_.get ())
+ {
+ *componentPort_ = e;
+ }
+
+ else
+ {
+ componentPort_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ componentPort_->container (this);
+ }
+ }
+
+ // ImplementationRequirement
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationRequirement::
+ resourceType () const
+ {
+ return *resourceType_;
+ }
+
+ void ImplementationRequirement::
+ resourceType (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *resourceType_ = e;
+ }
+
+ // ImplementationRequirement
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationRequirement::
+ name () const
+ {
+ return *name_;
+ }
+
+ void ImplementationRequirement::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // ImplementationRequirement
+ //
+ ImplementationRequirement::property_iterator ImplementationRequirement::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ ImplementationRequirement::property_iterator ImplementationRequirement::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ ImplementationRequirement::property_const_iterator ImplementationRequirement::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ ImplementationRequirement::property_const_iterator ImplementationRequirement::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void ImplementationRequirement::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t ImplementationRequirement::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+
+ // SubcomponentPortEndpoint
+ //
+
+ SubcomponentPortEndpoint::
+ SubcomponentPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__,
+ ::CIAO::Config_Handlers::IdRef const& instance__)
+ :
+ portName_ (new ::XMLSchema::string< ACE_TCHAR > (portName__)),
+ instance_ (new ::CIAO::Config_Handlers::IdRef (instance__)),
+ regulator__ ()
+ {
+ portName_->container (this);
+ instance_->container (this);
+ }
+
+ SubcomponentPortEndpoint::
+ SubcomponentPortEndpoint (SubcomponentPortEndpoint const& s)
+ :
+ ::XSCRT::Type (),
+ portName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.portName_)),
+ instance_ (new ::CIAO::Config_Handlers::IdRef (*s.instance_)),
+ regulator__ ()
+ {
+ portName_->container (this);
+ instance_->container (this);
+ }
+
+ SubcomponentPortEndpoint& SubcomponentPortEndpoint::
+ operator= (SubcomponentPortEndpoint const& s)
+ {
+ portName (*s.portName_);
+
+ instance (*s.instance_);
+
+ return *this;
+ }
+
+
+ // SubcomponentPortEndpoint
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& SubcomponentPortEndpoint::
+ portName () const
+ {
+ return *portName_;
+ }
+
+ void SubcomponentPortEndpoint::
+ portName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *portName_ = e;
+ }
+
+ // SubcomponentPortEndpoint
+ //
+ ::CIAO::Config_Handlers::IdRef const& SubcomponentPortEndpoint::
+ instance () const
+ {
+ return *instance_;
+ }
+
+ void SubcomponentPortEndpoint::
+ instance (::CIAO::Config_Handlers::IdRef const& e)
+ {
+ *instance_ = e;
+ }
+
+
+ // AssemblyConnectionDescription
+ //
+
+ AssemblyConnectionDescription::
+ AssemblyConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ AssemblyConnectionDescription::
+ AssemblyConnectionDescription (AssemblyConnectionDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ deployRequirement_ (s.deployRequirement_),
+ internalEndpoint_ (s.internalEndpoint_),
+ externalEndpoint_ (s.externalEndpoint_),
+ externalReference_ (s.externalReference_),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ AssemblyConnectionDescription& AssemblyConnectionDescription::
+ operator= (AssemblyConnectionDescription const& s)
+ {
+ name (*s.name_);
+
+ deployRequirement_ = s.deployRequirement_;
+
+ internalEndpoint_ = s.internalEndpoint_;
+
+ externalEndpoint_ = s.externalEndpoint_;
+
+ externalReference_ = s.externalReference_;
+
+ return *this;
+ }
+
+
+ // AssemblyConnectionDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& AssemblyConnectionDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void AssemblyConnectionDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // AssemblyConnectionDescription
+ //
+ AssemblyConnectionDescription::deployRequirement_iterator AssemblyConnectionDescription::
+ begin_deployRequirement ()
+ {
+ return deployRequirement_.begin ();
+ }
+
+ AssemblyConnectionDescription::deployRequirement_iterator AssemblyConnectionDescription::
+ end_deployRequirement ()
+ {
+ return deployRequirement_.end ();
+ }
+
+ AssemblyConnectionDescription::deployRequirement_const_iterator AssemblyConnectionDescription::
+ begin_deployRequirement () const
+ {
+ return deployRequirement_.begin ();
+ }
+
+ AssemblyConnectionDescription::deployRequirement_const_iterator AssemblyConnectionDescription::
+ end_deployRequirement () const
+ {
+ return deployRequirement_.end ();
+ }
+
+ void AssemblyConnectionDescription::
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ deployRequirement_.push_back (e);
+ }
+
+ size_t AssemblyConnectionDescription::
+ count_deployRequirement(void) const
+ {
+ return deployRequirement_.size ();
+ }
+
+ // AssemblyConnectionDescription
+ //
+ AssemblyConnectionDescription::internalEndpoint_iterator AssemblyConnectionDescription::
+ begin_internalEndpoint ()
+ {
+ return internalEndpoint_.begin ();
+ }
+
+ AssemblyConnectionDescription::internalEndpoint_iterator AssemblyConnectionDescription::
+ end_internalEndpoint ()
+ {
+ return internalEndpoint_.end ();
+ }
+
+ AssemblyConnectionDescription::internalEndpoint_const_iterator AssemblyConnectionDescription::
+ begin_internalEndpoint () const
+ {
+ return internalEndpoint_.begin ();
+ }
+
+ AssemblyConnectionDescription::internalEndpoint_const_iterator AssemblyConnectionDescription::
+ end_internalEndpoint () const
+ {
+ return internalEndpoint_.end ();
+ }
+
+ void AssemblyConnectionDescription::
+ add_internalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > const& e)
+ {
+ internalEndpoint_.push_back (e);
+ }
+
+ size_t AssemblyConnectionDescription::
+ count_internalEndpoint(void) const
+ {
+ return internalEndpoint_.size ();
+ }
+
+ // AssemblyConnectionDescription
+ //
+ AssemblyConnectionDescription::externalEndpoint_iterator AssemblyConnectionDescription::
+ begin_externalEndpoint ()
+ {
+ return externalEndpoint_.begin ();
+ }
+
+ AssemblyConnectionDescription::externalEndpoint_iterator AssemblyConnectionDescription::
+ end_externalEndpoint ()
+ {
+ return externalEndpoint_.end ();
+ }
+
+ AssemblyConnectionDescription::externalEndpoint_const_iterator AssemblyConnectionDescription::
+ begin_externalEndpoint () const
+ {
+ return externalEndpoint_.begin ();
+ }
+
+ AssemblyConnectionDescription::externalEndpoint_const_iterator AssemblyConnectionDescription::
+ end_externalEndpoint () const
+ {
+ return externalEndpoint_.end ();
+ }
+
+ void AssemblyConnectionDescription::
+ add_externalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& e)
+ {
+ externalEndpoint_.push_back (e);
+ }
+
+ size_t AssemblyConnectionDescription::
+ count_externalEndpoint(void) const
+ {
+ return externalEndpoint_.size ();
+ }
+
+ // AssemblyConnectionDescription
+ //
+ AssemblyConnectionDescription::externalReference_iterator AssemblyConnectionDescription::
+ begin_externalReference ()
+ {
+ return externalReference_.begin ();
+ }
+
+ AssemblyConnectionDescription::externalReference_iterator AssemblyConnectionDescription::
+ end_externalReference ()
+ {
+ return externalReference_.end ();
+ }
+
+ AssemblyConnectionDescription::externalReference_const_iterator AssemblyConnectionDescription::
+ begin_externalReference () const
+ {
+ return externalReference_.begin ();
+ }
+
+ AssemblyConnectionDescription::externalReference_const_iterator AssemblyConnectionDescription::
+ end_externalReference () const
+ {
+ return externalReference_.end ();
+ }
+
+ void AssemblyConnectionDescription::
+ add_externalReference (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& e)
+ {
+ externalReference_.push_back (e);
+ }
+
+ size_t AssemblyConnectionDescription::
+ count_externalReference(void) const
+ {
+ return externalReference_.size ();
+ }
+
+
+ // PlanLocalityKind
+ //
+
+ PlanLocalityKind::Value PlanLocalityKind::
+ integral () const
+ {
+ return v_;
+ }
+
+ bool
+ operator== (::CIAO::Config_Handlers::PlanLocalityKind const& a, ::CIAO::Config_Handlers::PlanLocalityKind const& b)
+ {
+ return a.v_ == b.v_;
+ }
+
+ bool
+ operator!= (::CIAO::Config_Handlers::PlanLocalityKind const& a, ::CIAO::Config_Handlers::PlanLocalityKind const& b)
+ {
+ return a.v_ != b.v_;
+ }
+
+ PlanLocalityKind::
+ PlanLocalityKind (PlanLocalityKind::Value v)
+ : v_ (v)
+ {
+ }
+
+ // PlanLocality
+ //
+
+ PlanLocality::
+ PlanLocality (::CIAO::Config_Handlers::PlanLocalityKind const& constraint__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > > const& constrainedInstance__)
+ :
+ constraint_ (new ::CIAO::Config_Handlers::PlanLocalityKind (constraint__)),
+ constrainedInstance_ (constrainedInstance__),
+ regulator__ ()
+ {
+ constraint_->container (this);
+ }
+
+ PlanLocality::
+ PlanLocality (PlanLocality const& s)
+ :
+ ::XSCRT::Type (),
+ constraint_ (new ::CIAO::Config_Handlers::PlanLocalityKind (*s.constraint_)),
+ constrainedInstance_ (s.constrainedInstance_),
+ regulator__ ()
+ {
+ constraint_->container (this);
+ }
+
+ PlanLocality& PlanLocality::
+ operator= (PlanLocality const& s)
+ {
+ constraint (*s.constraint_);
+
+ constrainedInstance_ = s.constrainedInstance_;
+
+ return *this;
+ }
+
+
+ // PlanLocality
+ //
+ ::CIAO::Config_Handlers::PlanLocalityKind const& PlanLocality::
+ constraint () const
+ {
+ return *constraint_;
+ }
+
+ void PlanLocality::
+ constraint (::CIAO::Config_Handlers::PlanLocalityKind const& e)
+ {
+ *constraint_ = e;
+ }
+
+ // PlanLocality
+ //
+ PlanLocality::constrainedInstance_iterator PlanLocality::
+ begin_constrainedInstance ()
+ {
+ return constrainedInstance_.begin ();
+ }
+
+ PlanLocality::constrainedInstance_iterator PlanLocality::
+ end_constrainedInstance ()
+ {
+ return constrainedInstance_.end ();
+ }
+
+ PlanLocality::constrainedInstance_const_iterator PlanLocality::
+ begin_constrainedInstance () const
+ {
+ return constrainedInstance_.begin ();
+ }
+
+ PlanLocality::constrainedInstance_const_iterator PlanLocality::
+ end_constrainedInstance () const
+ {
+ return constrainedInstance_.end ();
+ }
+
+ void PlanLocality::
+ add_constrainedInstance (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > const& e)
+ {
+ constrainedInstance_.push_back (e);
+ }
+
+ size_t PlanLocality::
+ count_constrainedInstance(void) const
+ {
+ return constrainedInstance_.size ();
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // IdRef
+ //
+
+ IdRef::
+ IdRef (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else if (n == ACE_TEXT ("idref"))
+ {
+ ::XMLSchema::IDREF< ACE_TCHAR > t (a);
+ idref (t);
+ std::basic_string<ACE_TCHAR> temp ((*idref_).id().c_str());
+
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_idref(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // TCKind
+ //
+
+ TCKind::
+ TCKind (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ : ::XSCRT::Type (e)
+ {
+ ::std::basic_string< ACE_TCHAR > v (e.value ());
+
+ if (v == ACE_TEXT ("tk_null")) v_ = tk_null_l;
+ else if (v == ACE_TEXT ("tk_void")) v_ = tk_void_l;
+ else if (v == ACE_TEXT ("tk_short")) v_ = tk_short_l;
+ else if (v == ACE_TEXT ("tk_long")) v_ = tk_long_l;
+ else if (v == ACE_TEXT ("tk_ushort")) v_ = tk_ushort_l;
+ else if (v == ACE_TEXT ("tk_ulong")) v_ = tk_ulong_l;
+ else if (v == ACE_TEXT ("tk_float")) v_ = tk_float_l;
+ else if (v == ACE_TEXT ("tk_double")) v_ = tk_double_l;
+ else if (v == ACE_TEXT ("tk_boolean")) v_ = tk_boolean_l;
+ else if (v == ACE_TEXT ("tk_char")) v_ = tk_char_l;
+ else if (v == ACE_TEXT ("tk_octet")) v_ = tk_octet_l;
+ else if (v == ACE_TEXT ("tk_any")) v_ = tk_any_l;
+ else if (v == ACE_TEXT ("tk_TypeCode")) v_ = tk_TypeCode_l;
+ else if (v == ACE_TEXT ("tk_Principal")) v_ = tk_Principal_l;
+ else if (v == ACE_TEXT ("tk_objref")) v_ = tk_objref_l;
+ else if (v == ACE_TEXT ("tk_struct")) v_ = tk_struct_l;
+ else if (v == ACE_TEXT ("tk_union")) v_ = tk_union_l;
+ else if (v == ACE_TEXT ("tk_enum")) v_ = tk_enum_l;
+ else if (v == ACE_TEXT ("tk_string")) v_ = tk_string_l;
+ else if (v == ACE_TEXT ("tk_sequence")) v_ = tk_sequence_l;
+ else if (v == ACE_TEXT ("tk_array")) v_ = tk_array_l;
+ else if (v == ACE_TEXT ("tk_alias")) v_ = tk_alias_l;
+ else if (v == ACE_TEXT ("tk_except")) v_ = tk_except_l;
+ else if (v == ACE_TEXT ("tk_longlong")) v_ = tk_longlong_l;
+ else if (v == ACE_TEXT ("tk_ulonglong")) v_ = tk_ulonglong_l;
+ else if (v == ACE_TEXT ("tk_longdouble")) v_ = tk_longdouble_l;
+ else if (v == ACE_TEXT ("tk_wchar")) v_ = tk_wchar_l;
+ else if (v == ACE_TEXT ("tk_wstring")) v_ = tk_wstring_l;
+ else if (v == ACE_TEXT ("tk_fixed")) v_ = tk_fixed_l;
+ else if (v == ACE_TEXT ("tk_value")) v_ = tk_value_l;
+ else if (v == ACE_TEXT ("tk_value_box")) v_ = tk_value_box_l;
+ else if (v == ACE_TEXT ("tk_native")) v_ = tk_native_l;
+ else if (v == ACE_TEXT ("tk_abstract_interface")) v_ = tk_abstract_interface_l;
+ else if (v == ACE_TEXT ("tk_local_interface")) v_ = tk_local_interface_l;
+ else if (v == ACE_TEXT ("tk_component")) v_ = tk_component_l;
+ else if (v == ACE_TEXT ("tk_home")) v_ = tk_home_l;
+ else if (v == ACE_TEXT ("tk_event")) v_ = tk_event_l;
+ else
+ {
+ }
+ }
+
+ TCKind::
+ TCKind (::XSCRT::XML::Attribute< ACE_TCHAR > const& a)
+ : ::XSCRT::Type (a)
+ {
+ ::std::basic_string< ACE_TCHAR > v (a.value ());
+
+ if (v == ACE_TEXT ("tk_null")) v_ = tk_null_l;
+ else if (v == ACE_TEXT ("tk_void")) v_ = tk_void_l;
+ else if (v == ACE_TEXT ("tk_short")) v_ = tk_short_l;
+ else if (v == ACE_TEXT ("tk_long")) v_ = tk_long_l;
+ else if (v == ACE_TEXT ("tk_ushort")) v_ = tk_ushort_l;
+ else if (v == ACE_TEXT ("tk_ulong")) v_ = tk_ulong_l;
+ else if (v == ACE_TEXT ("tk_float")) v_ = tk_float_l;
+ else if (v == ACE_TEXT ("tk_double")) v_ = tk_double_l;
+ else if (v == ACE_TEXT ("tk_boolean")) v_ = tk_boolean_l;
+ else if (v == ACE_TEXT ("tk_char")) v_ = tk_char_l;
+ else if (v == ACE_TEXT ("tk_octet")) v_ = tk_octet_l;
+ else if (v == ACE_TEXT ("tk_any")) v_ = tk_any_l;
+ else if (v == ACE_TEXT ("tk_TypeCode")) v_ = tk_TypeCode_l;
+ else if (v == ACE_TEXT ("tk_Principal")) v_ = tk_Principal_l;
+ else if (v == ACE_TEXT ("tk_objref")) v_ = tk_objref_l;
+ else if (v == ACE_TEXT ("tk_struct")) v_ = tk_struct_l;
+ else if (v == ACE_TEXT ("tk_union")) v_ = tk_union_l;
+ else if (v == ACE_TEXT ("tk_enum")) v_ = tk_enum_l;
+ else if (v == ACE_TEXT ("tk_string")) v_ = tk_string_l;
+ else if (v == ACE_TEXT ("tk_sequence")) v_ = tk_sequence_l;
+ else if (v == ACE_TEXT ("tk_array")) v_ = tk_array_l;
+ else if (v == ACE_TEXT ("tk_alias")) v_ = tk_alias_l;
+ else if (v == ACE_TEXT ("tk_except")) v_ = tk_except_l;
+ else if (v == ACE_TEXT ("tk_longlong")) v_ = tk_longlong_l;
+ else if (v == ACE_TEXT ("tk_ulonglong")) v_ = tk_ulonglong_l;
+ else if (v == ACE_TEXT ("tk_longdouble")) v_ = tk_longdouble_l;
+ else if (v == ACE_TEXT ("tk_wchar")) v_ = tk_wchar_l;
+ else if (v == ACE_TEXT ("tk_wstring")) v_ = tk_wstring_l;
+ else if (v == ACE_TEXT ("tk_fixed")) v_ = tk_fixed_l;
+ else if (v == ACE_TEXT ("tk_value")) v_ = tk_value_l;
+ else if (v == ACE_TEXT ("tk_value_box")) v_ = tk_value_box_l;
+ else if (v == ACE_TEXT ("tk_native")) v_ = tk_native_l;
+ else if (v == ACE_TEXT ("tk_abstract_interface")) v_ = tk_abstract_interface_l;
+ else if (v == ACE_TEXT ("tk_local_interface")) v_ = tk_local_interface_l;
+ else if (v == ACE_TEXT ("tk_component")) v_ = tk_component_l;
+ else if (v == ACE_TEXT ("tk_home")) v_ = tk_home_l;
+ else if (v == ACE_TEXT ("tk_event")) v_ = tk_event_l;
+ else
+ {
+ }
+ }
+
+ TCKind const TCKind::tk_null (TCKind::tk_null_l);
+ TCKind const TCKind::tk_void (TCKind::tk_void_l);
+ TCKind const TCKind::tk_short (TCKind::tk_short_l);
+ TCKind const TCKind::tk_long (TCKind::tk_long_l);
+ TCKind const TCKind::tk_ushort (TCKind::tk_ushort_l);
+ TCKind const TCKind::tk_ulong (TCKind::tk_ulong_l);
+ TCKind const TCKind::tk_float (TCKind::tk_float_l);
+ TCKind const TCKind::tk_double (TCKind::tk_double_l);
+ TCKind const TCKind::tk_boolean (TCKind::tk_boolean_l);
+ TCKind const TCKind::tk_char (TCKind::tk_char_l);
+ TCKind const TCKind::tk_octet (TCKind::tk_octet_l);
+ TCKind const TCKind::tk_any (TCKind::tk_any_l);
+ TCKind const TCKind::tk_TypeCode (TCKind::tk_TypeCode_l);
+ TCKind const TCKind::tk_Principal (TCKind::tk_Principal_l);
+ TCKind const TCKind::tk_objref (TCKind::tk_objref_l);
+ TCKind const TCKind::tk_struct (TCKind::tk_struct_l);
+ TCKind const TCKind::tk_union (TCKind::tk_union_l);
+ TCKind const TCKind::tk_enum (TCKind::tk_enum_l);
+ TCKind const TCKind::tk_string (TCKind::tk_string_l);
+ TCKind const TCKind::tk_sequence (TCKind::tk_sequence_l);
+ TCKind const TCKind::tk_array (TCKind::tk_array_l);
+ TCKind const TCKind::tk_alias (TCKind::tk_alias_l);
+ TCKind const TCKind::tk_except (TCKind::tk_except_l);
+ TCKind const TCKind::tk_longlong (TCKind::tk_longlong_l);
+ TCKind const TCKind::tk_ulonglong (TCKind::tk_ulonglong_l);
+ TCKind const TCKind::tk_longdouble (TCKind::tk_longdouble_l);
+ TCKind const TCKind::tk_wchar (TCKind::tk_wchar_l);
+ TCKind const TCKind::tk_wstring (TCKind::tk_wstring_l);
+ TCKind const TCKind::tk_fixed (TCKind::tk_fixed_l);
+ TCKind const TCKind::tk_value (TCKind::tk_value_l);
+ TCKind const TCKind::tk_value_box (TCKind::tk_value_box_l);
+ TCKind const TCKind::tk_native (TCKind::tk_native_l);
+ TCKind const TCKind::tk_abstract_interface (TCKind::tk_abstract_interface_l);
+ TCKind const TCKind::tk_local_interface (TCKind::tk_local_interface_l);
+ TCKind const TCKind::tk_component (TCKind::tk_component_l);
+ TCKind const TCKind::tk_home (TCKind::tk_home_l);
+ TCKind const TCKind::tk_event (TCKind::tk_event_l);
+
+ // DataType
+ //
+
+ DataType::
+ DataType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("kind"))
+ {
+ kind_ = ::std::auto_ptr< ::CIAO::Config_Handlers::TCKind > (new ::CIAO::Config_Handlers::TCKind (e));
+ kind_->container (this);
+ }
+
+ else if (n == ACE_TEXT("enum"))
+ {
+ ::CIAO::Config_Handlers::EnumType t (e);
+ enum_ (t);
+ }
+
+ else if (n == ACE_TEXT("struct"))
+ {
+ ::CIAO::Config_Handlers::StructType t (e);
+ struct_ (t);
+ }
+
+ else if (n == ACE_TEXT("value"))
+ {
+ ::CIAO::Config_Handlers::ValueType t (e);
+ value (t);
+ }
+
+ else if (n == ACE_TEXT("sequence"))
+ {
+ ::CIAO::Config_Handlers::SequenceType t (e);
+ sequence (t);
+ }
+
+ else if (n == ACE_TEXT("alias"))
+ {
+ ::CIAO::Config_Handlers::AliasType t (e);
+ alias (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("id"))
+ {
+ ::XMLSchema::ID< ACE_TCHAR > t (a);
+ id (t);
+ std::basic_string<ACE_TCHAR> temp ((*id_).c_str());
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_id(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // DataValue
+ //
+
+ DataValue::
+ DataValue (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("short"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > t (new ::XMLSchema::short_ (e));
+ add_short (t);
+ }
+
+ else if (n == ACE_TEXT("long"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > t (new ::XMLSchema::int_ (e));
+ add_long (t);
+ }
+
+ else if (n == ACE_TEXT("ushort"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > t (new ::XMLSchema::unsignedShort (e));
+ add_ushort (t);
+ }
+
+ else if (n == ACE_TEXT("ulong"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > t (new ::XMLSchema::unsignedInt (e));
+ add_ulong (t);
+ }
+
+ else if (n == ACE_TEXT("float"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > t (new ::XMLSchema::float_ (e));
+ add_float (t);
+ }
+
+ else if (n == ACE_TEXT("double"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > t (new ::XMLSchema::double_ (e));
+ add_double (t);
+ }
+
+ else if (n == ACE_TEXT("boolean"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > t (new ::XMLSchema::boolean (e));
+ add_boolean (t);
+ }
+
+ else if (n == ACE_TEXT("octet"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > t (new ::XMLSchema::unsignedByte (e));
+ add_octet (t);
+ }
+
+ else if (n == ACE_TEXT("enum"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_enum (t);
+ }
+
+ else if (n == ACE_TEXT("string"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_string (t);
+ }
+
+ else if (n == ACE_TEXT("longlong"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > t (new ::XMLSchema::long_ (e));
+ add_longlong (t);
+ }
+
+ else if (n == ACE_TEXT("ulonglong"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > t (new ::XMLSchema::unsignedLong (e));
+ add_ulonglong (t);
+ }
+
+ else if (n == ACE_TEXT("longdouble"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > t (new ::XMLSchema::double_ (e));
+ add_longdouble (t);
+ }
+
+ else if (n == ACE_TEXT("element"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::DataValue (e));
+ add_element (t);
+ }
+
+ else if (n == ACE_TEXT("member"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::NamedValue (e));
+ add_member (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // AliasType
+ //
+
+ AliasType::
+ AliasType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("typeId"))
+ {
+ typeId_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ typeId_->container (this);
+ }
+
+ else if (n == ACE_TEXT("elementType"))
+ {
+ elementType_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ elementType_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // EnumType
+ //
+
+ EnumType::
+ EnumType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("typeId"))
+ {
+ typeId_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ typeId_->container (this);
+ }
+
+ else if (n == ACE_TEXT("member"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_member (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // StructType
+ //
+
+ StructType::
+ StructType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("typeId"))
+ {
+ typeId_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ typeId_->container (this);
+ }
+
+ else if (n == ACE_TEXT("member"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::StructMemberType (e));
+ add_member (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // StructMemberType
+ //
+
+ StructMemberType::
+ StructMemberType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("type"))
+ {
+ type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ type_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ValueType
+ //
+
+ ValueType::
+ ValueType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("typeId"))
+ {
+ typeId_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ typeId_->container (this);
+ }
+
+ else if (n == ACE_TEXT("modifier"))
+ {
+ modifier_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ modifier_->container (this);
+ }
+
+ else if (n == ACE_TEXT("baseType"))
+ {
+ baseType_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ baseType_->container (this);
+ }
+
+ else if (n == ACE_TEXT("member"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ValueMemberType (e));
+ add_member (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ValueMemberType
+ //
+
+ ValueMemberType::
+ ValueMemberType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("visibility"))
+ {
+ visibility_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ visibility_->container (this);
+ }
+
+ else if (n == ACE_TEXT("type"))
+ {
+ type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ type_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // NamedValue
+ //
+
+ NamedValue::
+ NamedValue (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("value"))
+ {
+ value_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataValue > (new ::CIAO::Config_Handlers::DataValue (e));
+ value_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // SequenceType
+ //
+
+ SequenceType::
+ SequenceType (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("bound"))
+ {
+ ::XMLSchema::unsignedInt t (e);
+ bound (t);
+ }
+
+ else if (n == ACE_TEXT("elementType"))
+ {
+ elementType_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ elementType_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Any
+ //
+
+ Any::
+ Any (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("type"))
+ {
+ type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ type_->container (this);
+ }
+
+ else if (n == ACE_TEXT("value"))
+ {
+ value_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataValue > (new ::CIAO::Config_Handlers::DataValue (e));
+ value_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Property
+ //
+
+ Property::
+ Property (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("value"))
+ {
+ value_ = ::std::auto_ptr< ::CIAO::Config_Handlers::Any > (new ::CIAO::Config_Handlers::Any (e));
+ value_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // SatisfierPropertyKind
+ //
+
+ SatisfierPropertyKind::
+ SatisfierPropertyKind (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ : ::XSCRT::Type (e)
+ {
+ ::std::basic_string< ACE_TCHAR > v (e.value ());
+
+ if (v == ACE_TEXT ("Quantity")) v_ = Quantity_l;
+ else if (v == ACE_TEXT ("Capacity")) v_ = Capacity_l;
+ else if (v == ACE_TEXT ("Minimum")) v_ = Minimum_l;
+ else if (v == ACE_TEXT ("Maximum")) v_ = Maximum_l;
+ else if (v == ACE_TEXT ("Attribute")) v_ = Attribute_l;
+ else if (v == ACE_TEXT ("Selection")) v_ = Selection_l;
+ else
+ {
+ }
+ }
+
+ SatisfierPropertyKind::
+ SatisfierPropertyKind (::XSCRT::XML::Attribute< ACE_TCHAR > const& a)
+ : ::XSCRT::Type (a)
+ {
+ ::std::basic_string< ACE_TCHAR > v (a.value ());
+
+ if (v == ACE_TEXT ("Quantity")) v_ = Quantity_l;
+ else if (v == ACE_TEXT ("Capacity")) v_ = Capacity_l;
+ else if (v == ACE_TEXT ("Minimum")) v_ = Minimum_l;
+ else if (v == ACE_TEXT ("Maximum")) v_ = Maximum_l;
+ else if (v == ACE_TEXT ("Attribute")) v_ = Attribute_l;
+ else if (v == ACE_TEXT ("Selection")) v_ = Selection_l;
+ else
+ {
+ }
+ }
+
+ SatisfierPropertyKind const SatisfierPropertyKind::Quantity (SatisfierPropertyKind::Quantity_l);
+ SatisfierPropertyKind const SatisfierPropertyKind::Capacity (SatisfierPropertyKind::Capacity_l);
+ SatisfierPropertyKind const SatisfierPropertyKind::Minimum (SatisfierPropertyKind::Minimum_l);
+ SatisfierPropertyKind const SatisfierPropertyKind::Maximum (SatisfierPropertyKind::Maximum_l);
+ SatisfierPropertyKind const SatisfierPropertyKind::Attribute (SatisfierPropertyKind::Attribute_l);
+ SatisfierPropertyKind const SatisfierPropertyKind::Selection (SatisfierPropertyKind::Selection_l);
+
+ // SatisfierProperty
+ //
+
+ SatisfierProperty::
+ SatisfierProperty (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("kind"))
+ {
+ kind_ = ::std::auto_ptr< ::CIAO::Config_Handlers::SatisfierPropertyKind > (new ::CIAO::Config_Handlers::SatisfierPropertyKind (e));
+ kind_->container (this);
+ }
+
+ else if (n == ACE_TEXT("dynamic"))
+ {
+ dynamic_ = ::std::auto_ptr< ::XMLSchema::boolean > (new ::XMLSchema::boolean (e));
+ dynamic_->container (this);
+ }
+
+ else if (n == ACE_TEXT("value"))
+ {
+ value_ = ::std::auto_ptr< ::CIAO::Config_Handlers::Any > (new ::CIAO::Config_Handlers::Any (e));
+ value_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Resource
+ //
+
+ Resource::
+ Resource (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceType"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_resourceType (t);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SatisfierProperty (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Requirement
+ //
+
+ Requirement::
+ Requirement (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceType"))
+ {
+ resourceType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourceType_->container (this);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ResourceDeploymentDescription
+ //
+
+ ResourceDeploymentDescription::
+ ResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("requirementName"))
+ {
+ requirementName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ requirementName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceName"))
+ {
+ resourceName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourceName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ArtifactDeploymentDescription
+ //
+
+ ArtifactDeploymentDescription::
+ ArtifactDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("source"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_source (t);
+ }
+
+ else if (n == ACE_TEXT("node"))
+ {
+ node_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ node_->container (this);
+ }
+
+ else if (n == ACE_TEXT("location"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_location (t);
+ }
+
+ else if (n == ACE_TEXT("execParameter"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_execParameter (t);
+ }
+
+ else if (n == ACE_TEXT("deployRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_deployRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("deployedResource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ResourceDeploymentDescription (e));
+ add_deployedResource (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("id"))
+ {
+ ::XMLSchema::ID< ACE_TCHAR > t (a);
+ id (t);
+ std::basic_string<ACE_TCHAR> temp ((*id_).c_str());
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_id(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // MonolithicDeploymentDescription
+ //
+
+ MonolithicDeploymentDescription::
+ MonolithicDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("source"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_source (t);
+ }
+
+ else if (n == ACE_TEXT("artifact"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::IdRef (e));
+ add_artifact (t);
+ }
+
+ else if (n == ACE_TEXT("execParameter"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_execParameter (t);
+ }
+
+ else if (n == ACE_TEXT("deployRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_deployRequirement (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("id"))
+ {
+ ::XMLSchema::ID< ACE_TCHAR > t (a);
+ id (t);
+ std::basic_string<ACE_TCHAR> temp ((*id_).c_str());
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_id(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ResourceUsageKind
+ //
+
+ ResourceUsageKind::
+ ResourceUsageKind (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ : ::XSCRT::Type (e)
+ {
+ ::std::basic_string< ACE_TCHAR > v (e.value ());
+
+ if (v == ACE_TEXT ("None")) v_ = None_l;
+ else if (v == ACE_TEXT ("InstanceUsesResource")) v_ = InstanceUsesResource_l;
+ else if (v == ACE_TEXT ("ResourceUsesInstance")) v_ = ResourceUsesInstance_l;
+ else if (v == ACE_TEXT ("PortUsesResource")) v_ = PortUsesResource_l;
+ else if (v == ACE_TEXT ("ResourceUsesPort")) v_ = ResourceUsesPort_l;
+ else
+ {
+ }
+ }
+
+ ResourceUsageKind::
+ ResourceUsageKind (::XSCRT::XML::Attribute< ACE_TCHAR > const& a)
+ : ::XSCRT::Type (a)
+ {
+ ::std::basic_string< ACE_TCHAR > v (a.value ());
+
+ if (v == ACE_TEXT ("None")) v_ = None_l;
+ else if (v == ACE_TEXT ("InstanceUsesResource")) v_ = InstanceUsesResource_l;
+ else if (v == ACE_TEXT ("ResourceUsesInstance")) v_ = ResourceUsesInstance_l;
+ else if (v == ACE_TEXT ("PortUsesResource")) v_ = PortUsesResource_l;
+ else if (v == ACE_TEXT ("ResourceUsesPort")) v_ = ResourceUsesPort_l;
+ else
+ {
+ }
+ }
+
+ ResourceUsageKind const ResourceUsageKind::None (ResourceUsageKind::None_l);
+ ResourceUsageKind const ResourceUsageKind::InstanceUsesResource (ResourceUsageKind::InstanceUsesResource_l);
+ ResourceUsageKind const ResourceUsageKind::ResourceUsesInstance (ResourceUsageKind::ResourceUsesInstance_l);
+ ResourceUsageKind const ResourceUsageKind::PortUsesResource (ResourceUsageKind::PortUsesResource_l);
+ ResourceUsageKind const ResourceUsageKind::ResourceUsesPort (ResourceUsageKind::ResourceUsesPort_l);
+
+ // InstanceResourceDeploymentDescription
+ //
+
+ InstanceResourceDeploymentDescription::
+ InstanceResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("resourceUsage"))
+ {
+ resourceUsage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > (new ::CIAO::Config_Handlers::ResourceUsageKind (e));
+ resourceUsage_->container (this);
+ }
+
+ else if (n == ACE_TEXT("requirementName"))
+ {
+ requirementName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ requirementName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceName"))
+ {
+ resourceName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourceName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // InstanceDeploymentDescription
+ //
+
+ InstanceDeploymentDescription::
+ InstanceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("node"))
+ {
+ node_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ node_->container (this);
+ }
+
+ else if (n == ACE_TEXT("source"))
+ {
+ source_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ source_->container (this);
+ }
+
+ else if (n == ACE_TEXT("implementation"))
+ {
+ implementation_ = ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > (new ::CIAO::Config_Handlers::IdRef (e));
+ implementation_->container (this);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("deployedResource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (e));
+ add_deployedResource (t);
+ }
+
+ else if (n == ACE_TEXT("deployedSharedResource"))
+ {
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription t (e);
+ deployedSharedResource (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("id"))
+ {
+ ::XMLSchema::ID< ACE_TCHAR > t (a);
+ id (t);
+ std::basic_string<ACE_TCHAR> temp ((*id_).c_str());
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_id(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // CCMComponentPortKind
+ //
+
+ CCMComponentPortKind::
+ CCMComponentPortKind (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ : ::XSCRT::Type (e)
+ {
+ ::std::basic_string< ACE_TCHAR > v (e.value ());
+
+ if (v == ACE_TEXT ("Facet")) v_ = Facet_l;
+ else if (v == ACE_TEXT ("SimplexReceptacle")) v_ = SimplexReceptacle_l;
+ else if (v == ACE_TEXT ("MultiplexReceptacle")) v_ = MultiplexReceptacle_l;
+ else if (v == ACE_TEXT ("EventEmitter")) v_ = EventEmitter_l;
+ else if (v == ACE_TEXT ("EventPublisher")) v_ = EventPublisher_l;
+ else if (v == ACE_TEXT ("EventConsumer")) v_ = EventConsumer_l;
+ else if (v == ACE_TEXT ("ExtendedPort")) v_ = ExtendedPort_l;
+ else if (v == ACE_TEXT ("MirrorPort")) v_ = MirrorPort_l;
+ else
+ {
+ }
+ }
+
+ CCMComponentPortKind::
+ CCMComponentPortKind (::XSCRT::XML::Attribute< ACE_TCHAR > const& a)
+ : ::XSCRT::Type (a)
+ {
+ ::std::basic_string< ACE_TCHAR > v (a.value ());
+
+ if (v == ACE_TEXT ("Facet")) v_ = Facet_l;
+ else if (v == ACE_TEXT ("SimplexReceptacle")) v_ = SimplexReceptacle_l;
+ else if (v == ACE_TEXT ("MultiplexReceptacle")) v_ = MultiplexReceptacle_l;
+ else if (v == ACE_TEXT ("EventEmitter")) v_ = EventEmitter_l;
+ else if (v == ACE_TEXT ("EventPublisher")) v_ = EventPublisher_l;
+ else if (v == ACE_TEXT ("EventConsumer")) v_ = EventConsumer_l;
+ else if (v == ACE_TEXT ("ExtendedPort")) v_ = ExtendedPort_l;
+ else if (v == ACE_TEXT ("MirrorPort")) v_ = MirrorPort_l;
+ else
+ {
+ }
+ }
+
+ CCMComponentPortKind const CCMComponentPortKind::Facet (CCMComponentPortKind::Facet_l);
+ CCMComponentPortKind const CCMComponentPortKind::SimplexReceptacle (CCMComponentPortKind::SimplexReceptacle_l);
+ CCMComponentPortKind const CCMComponentPortKind::MultiplexReceptacle (CCMComponentPortKind::MultiplexReceptacle_l);
+ CCMComponentPortKind const CCMComponentPortKind::EventEmitter (CCMComponentPortKind::EventEmitter_l);
+ CCMComponentPortKind const CCMComponentPortKind::EventPublisher (CCMComponentPortKind::EventPublisher_l);
+ CCMComponentPortKind const CCMComponentPortKind::EventConsumer (CCMComponentPortKind::EventConsumer_l);
+ CCMComponentPortKind const CCMComponentPortKind::ExtendedPort (CCMComponentPortKind::ExtendedPort_l);
+ CCMComponentPortKind const CCMComponentPortKind::MirrorPort (CCMComponentPortKind::MirrorPort_l);
+
+ // ComponentPortDescription
+ //
+
+ ComponentPortDescription::
+ ComponentPortDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("specificType"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ specificType (t);
+ }
+
+ else if (n == ACE_TEXT("supportedType"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_supportedType (t);
+ }
+
+ else if (n == ACE_TEXT("provider"))
+ {
+ provider_ = ::std::auto_ptr< ::XMLSchema::boolean > (new ::XMLSchema::boolean (e));
+ provider_->container (this);
+ }
+
+ else if (n == ACE_TEXT("exclusiveProvider"))
+ {
+ exclusiveProvider_ = ::std::auto_ptr< ::XMLSchema::boolean > (new ::XMLSchema::boolean (e));
+ exclusiveProvider_->container (this);
+ }
+
+ else if (n == ACE_TEXT("exclusiveUser"))
+ {
+ exclusiveUser_ = ::std::auto_ptr< ::XMLSchema::boolean > (new ::XMLSchema::boolean (e));
+ exclusiveUser_->container (this);
+ }
+
+ else if (n == ACE_TEXT("optional"))
+ {
+ optional_ = ::std::auto_ptr< ::XMLSchema::boolean > (new ::XMLSchema::boolean (e));
+ optional_->container (this);
+ }
+
+ else if (n == ACE_TEXT("kind"))
+ {
+ kind_ = ::std::auto_ptr< ::CIAO::Config_Handlers::CCMComponentPortKind > (new ::CIAO::Config_Handlers::CCMComponentPortKind (e));
+ kind_->container (this);
+ }
+
+ else if (n == ACE_TEXT("templateParam"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_templateParam (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ComponentPropertyDescription
+ //
+
+ ComponentPropertyDescription::
+ ComponentPropertyDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("type"))
+ {
+ type_ = ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > (new ::CIAO::Config_Handlers::DataType (e));
+ type_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ComponentExternalPortEndpoint
+ //
+
+ ComponentExternalPortEndpoint::
+ ComponentExternalPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("portName"))
+ {
+ portName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ portName_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // PlanSubcomponentPortEndpoint
+ //
+
+ PlanSubcomponentPortEndpoint::
+ PlanSubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("portName"))
+ {
+ portName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ portName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("provider"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ provider (t);
+ }
+
+ else if (n == ACE_TEXT("kind"))
+ {
+ kind_ = ::std::auto_ptr< ::CIAO::Config_Handlers::CCMComponentPortKind > (new ::CIAO::Config_Handlers::CCMComponentPortKind (e));
+ kind_->container (this);
+ }
+
+ else if (n == ACE_TEXT("instance"))
+ {
+ instance_ = ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > (new ::CIAO::Config_Handlers::IdRef (e));
+ instance_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ExternalReferenceEndpoint
+ //
+
+ ExternalReferenceEndpoint::
+ ExternalReferenceEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("location"))
+ {
+ location_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ location_->container (this);
+ }
+
+ else if (n == ACE_TEXT("provider"))
+ {
+ provider_ = ::std::auto_ptr< ::XMLSchema::boolean > (new ::XMLSchema::boolean (e));
+ provider_->container (this);
+ }
+
+ else if (n == ACE_TEXT("portName"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ portName (t);
+ }
+
+ else if (n == ACE_TEXT("supportedType"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_supportedType (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ConnectionResourceDeploymentDescription
+ //
+
+ ConnectionResourceDeploymentDescription::
+ ConnectionResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("targetName"))
+ {
+ targetName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ targetName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("requirementName"))
+ {
+ requirementName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ requirementName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceName"))
+ {
+ resourceName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourceName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // PlanConnectionDescription
+ //
+
+ PlanConnectionDescription::
+ PlanConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("source"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ source (t);
+ }
+
+ else if (n == ACE_TEXT("deployRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_deployRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("externalEndpoint"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentExternalPortEndpoint (e));
+ add_externalEndpoint (t);
+ }
+
+ else if (n == ACE_TEXT("internalEndpoint"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint (e));
+ add_internalEndpoint (t);
+ }
+
+ else if (n == ACE_TEXT("externalReference"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ExternalReferenceEndpoint (e));
+ add_externalReference (t);
+ }
+
+ else if (n == ACE_TEXT("deployedResource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription (e));
+ add_deployedResource (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ImplementationDependency
+ //
+
+ ImplementationDependency::
+ ImplementationDependency (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("requiredType"))
+ {
+ requiredType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ requiredType_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Capability
+ //
+
+ Capability::
+ Capability (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceType"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_resourceType (t);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SatisfierProperty (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ImplementationRequirement
+ //
+
+ ImplementationRequirement::
+ ImplementationRequirement (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("resourceUsage"))
+ {
+ ::CIAO::Config_Handlers::ResourceUsageKind t (e);
+ resourceUsage (t);
+ }
+
+ else if (n == ACE_TEXT("resourcePort"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ resourcePort (t);
+ }
+
+ else if (n == ACE_TEXT("componentPort"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ componentPort (t);
+ }
+
+ else if (n == ACE_TEXT("resourceType"))
+ {
+ resourceType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourceType_->container (this);
+ }
+
+ else if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_property (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // SubcomponentPortEndpoint
+ //
+
+ SubcomponentPortEndpoint::
+ SubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("portName"))
+ {
+ portName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ portName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("instance"))
+ {
+ instance_ = ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > (new ::CIAO::Config_Handlers::IdRef (e));
+ instance_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // AssemblyConnectionDescription
+ //
+
+ AssemblyConnectionDescription::
+ AssemblyConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("deployRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_deployRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("internalEndpoint"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SubcomponentPortEndpoint (e));
+ add_internalEndpoint (t);
+ }
+
+ else if (n == ACE_TEXT("externalEndpoint"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentExternalPortEndpoint (e));
+ add_externalEndpoint (t);
+ }
+
+ else if (n == ACE_TEXT("externalReference"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ExternalReferenceEndpoint (e));
+ add_externalReference (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // PlanLocalityKind
+ //
+
+ PlanLocalityKind::
+ PlanLocalityKind (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ : ::XSCRT::Type (e)
+ {
+ ::std::basic_string< ACE_TCHAR > v (e.value ());
+
+ if (v == ACE_TEXT ("SameProcess")) v_ = SameProcess_l;
+ else if (v == ACE_TEXT ("DifferentProcess")) v_ = DifferentProcess_l;
+ else if (v == ACE_TEXT ("NoConstraint")) v_ = NoConstraint_l;
+ else
+ {
+ }
+ }
+
+ PlanLocalityKind::
+ PlanLocalityKind (::XSCRT::XML::Attribute< ACE_TCHAR > const& a)
+ : ::XSCRT::Type (a)
+ {
+ ::std::basic_string< ACE_TCHAR > v (a.value ());
+
+ if (v == ACE_TEXT ("SameProcess")) v_ = SameProcess_l;
+ else if (v == ACE_TEXT ("DifferentProcess")) v_ = DifferentProcess_l;
+ else if (v == ACE_TEXT ("NoConstraint")) v_ = NoConstraint_l;
+ else
+ {
+ }
+ }
+
+ PlanLocalityKind const PlanLocalityKind::SameProcess (PlanLocalityKind::SameProcess_l);
+ PlanLocalityKind const PlanLocalityKind::DifferentProcess (PlanLocalityKind::DifferentProcess_l);
+ PlanLocalityKind const PlanLocalityKind::NoConstraint (PlanLocalityKind::NoConstraint_l);
+
+ // PlanLocality
+ //
+
+ PlanLocality::
+ PlanLocality (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("constraint"))
+ {
+ constraint_ = ::std::auto_ptr< ::CIAO::Config_Handlers::PlanLocalityKind > (new ::CIAO::Config_Handlers::PlanLocalityKind (e));
+ constraint_->container (this);
+ }
+
+ else if (n == ACE_TEXT("constrainedInstance"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::IdRef (e));
+ add_constrainedInstance (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct IdRefTypeInfoInitializer
+ {
+ IdRefTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::IdRef));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ IdRefTypeInfoInitializer IdRefTypeInfoInitializer_;
+
+ struct TCKindTypeInfoInitializer
+ {
+ TCKindTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (TCKind));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ TCKindTypeInfoInitializer TCKindTypeInfoInitializer_;
+
+ struct DataTypeTypeInfoInitializer
+ {
+ DataTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::DataType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ DataTypeTypeInfoInitializer DataTypeTypeInfoInitializer_;
+
+ struct DataValueTypeInfoInitializer
+ {
+ DataValueTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::DataValue));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ DataValueTypeInfoInitializer DataValueTypeInfoInitializer_;
+
+ struct AliasTypeTypeInfoInitializer
+ {
+ AliasTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::AliasType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ AliasTypeTypeInfoInitializer AliasTypeTypeInfoInitializer_;
+
+ struct EnumTypeTypeInfoInitializer
+ {
+ EnumTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::EnumType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ EnumTypeTypeInfoInitializer EnumTypeTypeInfoInitializer_;
+
+ struct StructTypeTypeInfoInitializer
+ {
+ StructTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::StructType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ StructTypeTypeInfoInitializer StructTypeTypeInfoInitializer_;
+
+ struct StructMemberTypeTypeInfoInitializer
+ {
+ StructMemberTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::StructMemberType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ StructMemberTypeTypeInfoInitializer StructMemberTypeTypeInfoInitializer_;
+
+ struct ValueTypeTypeInfoInitializer
+ {
+ ValueTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ValueType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ValueTypeTypeInfoInitializer ValueTypeTypeInfoInitializer_;
+
+ struct ValueMemberTypeTypeInfoInitializer
+ {
+ ValueMemberTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ValueMemberType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ValueMemberTypeTypeInfoInitializer ValueMemberTypeTypeInfoInitializer_;
+
+ struct NamedValueTypeInfoInitializer
+ {
+ NamedValueTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::NamedValue));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ NamedValueTypeInfoInitializer NamedValueTypeInfoInitializer_;
+
+ struct SequenceTypeTypeInfoInitializer
+ {
+ SequenceTypeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SequenceType));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SequenceTypeTypeInfoInitializer SequenceTypeTypeInfoInitializer_;
+
+ struct AnyTypeInfoInitializer
+ {
+ AnyTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Any));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ AnyTypeInfoInitializer AnyTypeInfoInitializer_;
+
+ struct PropertyTypeInfoInitializer
+ {
+ PropertyTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Property));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PropertyTypeInfoInitializer PropertyTypeInfoInitializer_;
+
+ struct SatisfierPropertyKindTypeInfoInitializer
+ {
+ SatisfierPropertyKindTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (SatisfierPropertyKind));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SatisfierPropertyKindTypeInfoInitializer SatisfierPropertyKindTypeInfoInitializer_;
+
+ struct SatisfierPropertyTypeInfoInitializer
+ {
+ SatisfierPropertyTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SatisfierProperty));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SatisfierPropertyTypeInfoInitializer SatisfierPropertyTypeInfoInitializer_;
+
+ struct ResourceTypeInfoInitializer
+ {
+ ResourceTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Resource));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ResourceTypeInfoInitializer ResourceTypeInfoInitializer_;
+
+ struct RequirementTypeInfoInitializer
+ {
+ RequirementTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Requirement));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ RequirementTypeInfoInitializer RequirementTypeInfoInitializer_;
+
+ struct ResourceDeploymentDescriptionTypeInfoInitializer
+ {
+ ResourceDeploymentDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ResourceDeploymentDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ResourceDeploymentDescriptionTypeInfoInitializer ResourceDeploymentDescriptionTypeInfoInitializer_;
+
+ struct ArtifactDeploymentDescriptionTypeInfoInitializer
+ {
+ ArtifactDeploymentDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ArtifactDeploymentDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ArtifactDeploymentDescriptionTypeInfoInitializer ArtifactDeploymentDescriptionTypeInfoInitializer_;
+
+ struct MonolithicDeploymentDescriptionTypeInfoInitializer
+ {
+ MonolithicDeploymentDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::MonolithicDeploymentDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ MonolithicDeploymentDescriptionTypeInfoInitializer MonolithicDeploymentDescriptionTypeInfoInitializer_;
+
+ struct ResourceUsageKindTypeInfoInitializer
+ {
+ ResourceUsageKindTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (ResourceUsageKind));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ResourceUsageKindTypeInfoInitializer ResourceUsageKindTypeInfoInitializer_;
+
+ struct InstanceResourceDeploymentDescriptionTypeInfoInitializer
+ {
+ InstanceResourceDeploymentDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ InstanceResourceDeploymentDescriptionTypeInfoInitializer InstanceResourceDeploymentDescriptionTypeInfoInitializer_;
+
+ struct InstanceDeploymentDescriptionTypeInfoInitializer
+ {
+ InstanceDeploymentDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::InstanceDeploymentDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ InstanceDeploymentDescriptionTypeInfoInitializer InstanceDeploymentDescriptionTypeInfoInitializer_;
+
+ struct CCMComponentPortKindTypeInfoInitializer
+ {
+ CCMComponentPortKindTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (CCMComponentPortKind));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ CCMComponentPortKindTypeInfoInitializer CCMComponentPortKindTypeInfoInitializer_;
+
+ struct ComponentPortDescriptionTypeInfoInitializer
+ {
+ ComponentPortDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPortDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentPortDescriptionTypeInfoInitializer ComponentPortDescriptionTypeInfoInitializer_;
+
+ struct ComponentPropertyDescriptionTypeInfoInitializer
+ {
+ ComponentPropertyDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPropertyDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentPropertyDescriptionTypeInfoInitializer ComponentPropertyDescriptionTypeInfoInitializer_;
+
+ struct ComponentExternalPortEndpointTypeInfoInitializer
+ {
+ ComponentExternalPortEndpointTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentExternalPortEndpoint));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentExternalPortEndpointTypeInfoInitializer ComponentExternalPortEndpointTypeInfoInitializer_;
+
+ struct PlanSubcomponentPortEndpointTypeInfoInitializer
+ {
+ PlanSubcomponentPortEndpointTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PlanSubcomponentPortEndpointTypeInfoInitializer PlanSubcomponentPortEndpointTypeInfoInitializer_;
+
+ struct ExternalReferenceEndpointTypeInfoInitializer
+ {
+ ExternalReferenceEndpointTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ExternalReferenceEndpoint));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ExternalReferenceEndpointTypeInfoInitializer ExternalReferenceEndpointTypeInfoInitializer_;
+
+ struct ConnectionResourceDeploymentDescriptionTypeInfoInitializer
+ {
+ ConnectionResourceDeploymentDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ConnectionResourceDeploymentDescriptionTypeInfoInitializer ConnectionResourceDeploymentDescriptionTypeInfoInitializer_;
+
+ struct PlanConnectionDescriptionTypeInfoInitializer
+ {
+ PlanConnectionDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanConnectionDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PlanConnectionDescriptionTypeInfoInitializer PlanConnectionDescriptionTypeInfoInitializer_;
+
+ struct ImplementationDependencyTypeInfoInitializer
+ {
+ ImplementationDependencyTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ImplementationDependency));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ImplementationDependencyTypeInfoInitializer ImplementationDependencyTypeInfoInitializer_;
+
+ struct CapabilityTypeInfoInitializer
+ {
+ CapabilityTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Capability));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ CapabilityTypeInfoInitializer CapabilityTypeInfoInitializer_;
+
+ struct ImplementationRequirementTypeInfoInitializer
+ {
+ ImplementationRequirementTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ImplementationRequirement));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ImplementationRequirementTypeInfoInitializer ImplementationRequirementTypeInfoInitializer_;
+
+ struct SubcomponentPortEndpointTypeInfoInitializer
+ {
+ SubcomponentPortEndpointTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SubcomponentPortEndpoint));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SubcomponentPortEndpointTypeInfoInitializer SubcomponentPortEndpointTypeInfoInitializer_;
+
+ struct AssemblyConnectionDescriptionTypeInfoInitializer
+ {
+ AssemblyConnectionDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::AssemblyConnectionDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ AssemblyConnectionDescriptionTypeInfoInitializer AssemblyConnectionDescriptionTypeInfoInitializer_;
+
+ struct PlanLocalityKindTypeInfoInitializer
+ {
+ PlanLocalityKindTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (PlanLocalityKind));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PlanLocalityKindTypeInfoInitializer PlanLocalityKindTypeInfoInitializer_;
+
+ struct PlanLocalityTypeInfoInitializer
+ {
+ PlanLocalityTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanLocality));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PlanLocalityTypeInfoInitializer PlanLocalityTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // IdRef
+ //
+ //
+
+ void IdRef::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ if (o.idref_p ()) idref (o);
+ else idref_none (o);
+ post (o);
+ }
+
+ void IdRef::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ if (o.idref_p ()) idref (o);
+ else idref_none (o);
+ post (o);
+ }
+
+ void IdRef::
+ pre (Type&)
+ {
+ }
+
+ void IdRef::
+ pre (Type const&)
+ {
+ }
+
+ void IdRef::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void IdRef::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void IdRef::
+ href_none (Type&)
+ {
+ }
+
+ void IdRef::
+ href_none (Type const&)
+ {
+ }
+
+ void IdRef::
+ idref (Type& o)
+ {
+ dispatch (o.idref ());
+ }
+
+ void IdRef::
+ idref (Type const& o)
+ {
+ dispatch (o.idref ());
+ }
+
+ void IdRef::
+ idref_none (Type&)
+ {
+ }
+
+ void IdRef::
+ idref_none (Type const&)
+ {
+ }
+
+ void IdRef::
+ post (Type&)
+ {
+ }
+
+ void IdRef::
+ post (Type const&)
+ {
+ }
+
+ // DataType
+ //
+ //
+
+ void DataType::
+ traverse (Type& o)
+ {
+ pre (o);
+ kind (o);
+ if (o.enum_p ()) enum_ (o);
+ else enum_none (o);
+ if (o.struct_p ()) struct_ (o);
+ else struct_none (o);
+ if (o.value_p ()) value (o);
+ else value_none (o);
+ if (o.sequence_p ()) sequence (o);
+ else sequence_none (o);
+ if (o.alias_p ()) alias (o);
+ else alias_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void DataType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ kind (o);
+ if (o.enum_p ()) enum_ (o);
+ else enum_none (o);
+ if (o.struct_p ()) struct_ (o);
+ else struct_none (o);
+ if (o.value_p ()) value (o);
+ else value_none (o);
+ if (o.sequence_p ()) sequence (o);
+ else sequence_none (o);
+ if (o.alias_p ()) alias (o);
+ else alias_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void DataType::
+ pre (Type&)
+ {
+ }
+
+ void DataType::
+ pre (Type const&)
+ {
+ }
+
+ void DataType::
+ kind (Type& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void DataType::
+ kind (Type const& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void DataType::
+ enum_ (Type& o)
+ {
+ dispatch (o.enum_ ());
+ }
+
+ void DataType::
+ enum_ (Type const& o)
+ {
+ dispatch (o.enum_ ());
+ }
+
+ void DataType::
+ enum_none (Type&)
+ {
+ }
+
+ void DataType::
+ enum_none (Type const&)
+ {
+ }
+
+ void DataType::
+ struct_ (Type& o)
+ {
+ dispatch (o.struct_ ());
+ }
+
+ void DataType::
+ struct_ (Type const& o)
+ {
+ dispatch (o.struct_ ());
+ }
+
+ void DataType::
+ struct_none (Type&)
+ {
+ }
+
+ void DataType::
+ struct_none (Type const&)
+ {
+ }
+
+ void DataType::
+ value (Type& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void DataType::
+ value (Type const& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void DataType::
+ value_none (Type&)
+ {
+ }
+
+ void DataType::
+ value_none (Type const&)
+ {
+ }
+
+ void DataType::
+ sequence (Type& o)
+ {
+ dispatch (o.sequence ());
+ }
+
+ void DataType::
+ sequence (Type const& o)
+ {
+ dispatch (o.sequence ());
+ }
+
+ void DataType::
+ sequence_none (Type&)
+ {
+ }
+
+ void DataType::
+ sequence_none (Type const&)
+ {
+ }
+
+ void DataType::
+ alias (Type& o)
+ {
+ dispatch (o.alias ());
+ }
+
+ void DataType::
+ alias (Type const& o)
+ {
+ dispatch (o.alias ());
+ }
+
+ void DataType::
+ alias_none (Type&)
+ {
+ }
+
+ void DataType::
+ alias_none (Type const&)
+ {
+ }
+
+ void DataType::
+ id (Type& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void DataType::
+ id (Type const& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void DataType::
+ id_none (Type&)
+ {
+ }
+
+ void DataType::
+ id_none (Type const&)
+ {
+ }
+
+ void DataType::
+ post (Type&)
+ {
+ }
+
+ void DataType::
+ post (Type const&)
+ {
+ }
+
+ // DataValue
+ //
+ //
+
+ void DataValue::
+ traverse (Type& o)
+ {
+ pre (o);
+ short_ (o);
+ long_ (o);
+ ushort (o);
+ ulong (o);
+ float_ (o);
+ double_ (o);
+ boolean (o);
+ octet (o);
+ enum_ (o);
+ string (o);
+ longlong (o);
+ ulonglong (o);
+ longdouble (o);
+ element (o);
+ member (o);
+ post (o);
+ }
+
+ void DataValue::
+ traverse (Type const& o)
+ {
+ pre (o);
+ short_ (o);
+ long_ (o);
+ ushort (o);
+ ulong (o);
+ float_ (o);
+ double_ (o);
+ boolean (o);
+ octet (o);
+ enum_ (o);
+ string (o);
+ longlong (o);
+ ulonglong (o);
+ longdouble (o);
+ element (o);
+ member (o);
+ post (o);
+ }
+
+ void DataValue::
+ pre (Type&)
+ {
+ }
+
+ void DataValue::
+ pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ short_ (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::short_iterator b (o.begin_short()), e (o.end_short());
+
+ if (b != e)
+ {
+ short_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) short_next (o);
+ }
+
+ short_post (o);
+ }
+
+ else short_none (o);
+ }
+
+ void DataValue::
+ short_ (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::short_const_iterator b (o.begin_short()), e (o.end_short());
+
+ if (b != e)
+ {
+ short_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) short_next (o);
+ }
+
+ short_post (o);
+ }
+
+ else short_none (o);
+ }
+
+ void DataValue::
+ short_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ short_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ short_next (Type&)
+ {
+ }
+
+ void DataValue::
+ short_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ short_post (Type&)
+ {
+ }
+
+ void DataValue::
+ short_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ short_none (Type&)
+ {
+ }
+
+ void DataValue::
+ short_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ long_ (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::long_iterator b (o.begin_long()), e (o.end_long());
+
+ if (b != e)
+ {
+ long_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) long_next (o);
+ }
+
+ long_post (o);
+ }
+
+ else long_none (o);
+ }
+
+ void DataValue::
+ long_ (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::long_const_iterator b (o.begin_long()), e (o.end_long());
+
+ if (b != e)
+ {
+ long_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) long_next (o);
+ }
+
+ long_post (o);
+ }
+
+ else long_none (o);
+ }
+
+ void DataValue::
+ long_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ long_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ long_next (Type&)
+ {
+ }
+
+ void DataValue::
+ long_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ long_post (Type&)
+ {
+ }
+
+ void DataValue::
+ long_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ long_none (Type&)
+ {
+ }
+
+ void DataValue::
+ long_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ ushort (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::ushort_iterator b (o.begin_ushort()), e (o.end_ushort());
+
+ if (b != e)
+ {
+ ushort_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) ushort_next (o);
+ }
+
+ ushort_post (o);
+ }
+
+ else ushort_none (o);
+ }
+
+ void DataValue::
+ ushort (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::ushort_const_iterator b (o.begin_ushort()), e (o.end_ushort());
+
+ if (b != e)
+ {
+ ushort_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) ushort_next (o);
+ }
+
+ ushort_post (o);
+ }
+
+ else ushort_none (o);
+ }
+
+ void DataValue::
+ ushort_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ ushort_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ ushort_next (Type&)
+ {
+ }
+
+ void DataValue::
+ ushort_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ ushort_post (Type&)
+ {
+ }
+
+ void DataValue::
+ ushort_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ ushort_none (Type&)
+ {
+ }
+
+ void DataValue::
+ ushort_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulong (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::ulong_iterator b (o.begin_ulong()), e (o.end_ulong());
+
+ if (b != e)
+ {
+ ulong_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) ulong_next (o);
+ }
+
+ ulong_post (o);
+ }
+
+ else ulong_none (o);
+ }
+
+ void DataValue::
+ ulong (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::ulong_const_iterator b (o.begin_ulong()), e (o.end_ulong());
+
+ if (b != e)
+ {
+ ulong_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) ulong_next (o);
+ }
+
+ ulong_post (o);
+ }
+
+ else ulong_none (o);
+ }
+
+ void DataValue::
+ ulong_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ ulong_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulong_next (Type&)
+ {
+ }
+
+ void DataValue::
+ ulong_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulong_post (Type&)
+ {
+ }
+
+ void DataValue::
+ ulong_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulong_none (Type&)
+ {
+ }
+
+ void DataValue::
+ ulong_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ float_ (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::float_iterator b (o.begin_float()), e (o.end_float());
+
+ if (b != e)
+ {
+ float_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) float_next (o);
+ }
+
+ float_post (o);
+ }
+
+ else float_none (o);
+ }
+
+ void DataValue::
+ float_ (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::float_const_iterator b (o.begin_float()), e (o.end_float());
+
+ if (b != e)
+ {
+ float_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) float_next (o);
+ }
+
+ float_post (o);
+ }
+
+ else float_none (o);
+ }
+
+ void DataValue::
+ float_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ float_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ float_next (Type&)
+ {
+ }
+
+ void DataValue::
+ float_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ float_post (Type&)
+ {
+ }
+
+ void DataValue::
+ float_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ float_none (Type&)
+ {
+ }
+
+ void DataValue::
+ float_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ double_ (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::double_iterator b (o.begin_double()), e (o.end_double());
+
+ if (b != e)
+ {
+ double_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) double_next (o);
+ }
+
+ double_post (o);
+ }
+
+ else double_none (o);
+ }
+
+ void DataValue::
+ double_ (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::double_const_iterator b (o.begin_double()), e (o.end_double());
+
+ if (b != e)
+ {
+ double_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) double_next (o);
+ }
+
+ double_post (o);
+ }
+
+ else double_none (o);
+ }
+
+ void DataValue::
+ double_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ double_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ double_next (Type&)
+ {
+ }
+
+ void DataValue::
+ double_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ double_post (Type&)
+ {
+ }
+
+ void DataValue::
+ double_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ double_none (Type&)
+ {
+ }
+
+ void DataValue::
+ double_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ boolean (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::boolean_iterator b (o.begin_boolean()), e (o.end_boolean());
+
+ if (b != e)
+ {
+ boolean_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) boolean_next (o);
+ }
+
+ boolean_post (o);
+ }
+
+ else boolean_none (o);
+ }
+
+ void DataValue::
+ boolean (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::boolean_const_iterator b (o.begin_boolean()), e (o.end_boolean());
+
+ if (b != e)
+ {
+ boolean_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) boolean_next (o);
+ }
+
+ boolean_post (o);
+ }
+
+ else boolean_none (o);
+ }
+
+ void DataValue::
+ boolean_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ boolean_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ boolean_next (Type&)
+ {
+ }
+
+ void DataValue::
+ boolean_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ boolean_post (Type&)
+ {
+ }
+
+ void DataValue::
+ boolean_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ boolean_none (Type&)
+ {
+ }
+
+ void DataValue::
+ boolean_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ octet (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::octet_iterator b (o.begin_octet()), e (o.end_octet());
+
+ if (b != e)
+ {
+ octet_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) octet_next (o);
+ }
+
+ octet_post (o);
+ }
+
+ else octet_none (o);
+ }
+
+ void DataValue::
+ octet (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::octet_const_iterator b (o.begin_octet()), e (o.end_octet());
+
+ if (b != e)
+ {
+ octet_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) octet_next (o);
+ }
+
+ octet_post (o);
+ }
+
+ else octet_none (o);
+ }
+
+ void DataValue::
+ octet_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ octet_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ octet_next (Type&)
+ {
+ }
+
+ void DataValue::
+ octet_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ octet_post (Type&)
+ {
+ }
+
+ void DataValue::
+ octet_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ octet_none (Type&)
+ {
+ }
+
+ void DataValue::
+ octet_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ enum_ (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::enum_iterator b (o.begin_enum()), e (o.end_enum());
+
+ if (b != e)
+ {
+ enum_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) enum_next (o);
+ }
+
+ enum_post (o);
+ }
+
+ else enum_none (o);
+ }
+
+ void DataValue::
+ enum_ (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::enum_const_iterator b (o.begin_enum()), e (o.end_enum());
+
+ if (b != e)
+ {
+ enum_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) enum_next (o);
+ }
+
+ enum_post (o);
+ }
+
+ else enum_none (o);
+ }
+
+ void DataValue::
+ enum_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ enum_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ enum_next (Type&)
+ {
+ }
+
+ void DataValue::
+ enum_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ enum_post (Type&)
+ {
+ }
+
+ void DataValue::
+ enum_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ enum_none (Type&)
+ {
+ }
+
+ void DataValue::
+ enum_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ string (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::string_iterator b (o.begin_string()), e (o.end_string());
+
+ if (b != e)
+ {
+ string_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) string_next (o);
+ }
+
+ string_post (o);
+ }
+
+ else string_none (o);
+ }
+
+ void DataValue::
+ string (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::string_const_iterator b (o.begin_string()), e (o.end_string());
+
+ if (b != e)
+ {
+ string_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) string_next (o);
+ }
+
+ string_post (o);
+ }
+
+ else string_none (o);
+ }
+
+ void DataValue::
+ string_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ string_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ string_next (Type&)
+ {
+ }
+
+ void DataValue::
+ string_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ string_post (Type&)
+ {
+ }
+
+ void DataValue::
+ string_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ string_none (Type&)
+ {
+ }
+
+ void DataValue::
+ string_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ longlong (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::longlong_iterator b (o.begin_longlong()), e (o.end_longlong());
+
+ if (b != e)
+ {
+ longlong_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) longlong_next (o);
+ }
+
+ longlong_post (o);
+ }
+
+ else longlong_none (o);
+ }
+
+ void DataValue::
+ longlong (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::longlong_const_iterator b (o.begin_longlong()), e (o.end_longlong());
+
+ if (b != e)
+ {
+ longlong_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) longlong_next (o);
+ }
+
+ longlong_post (o);
+ }
+
+ else longlong_none (o);
+ }
+
+ void DataValue::
+ longlong_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ longlong_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ longlong_next (Type&)
+ {
+ }
+
+ void DataValue::
+ longlong_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ longlong_post (Type&)
+ {
+ }
+
+ void DataValue::
+ longlong_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ longlong_none (Type&)
+ {
+ }
+
+ void DataValue::
+ longlong_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulonglong (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::ulonglong_iterator b (o.begin_ulonglong()), e (o.end_ulonglong());
+
+ if (b != e)
+ {
+ ulonglong_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) ulonglong_next (o);
+ }
+
+ ulonglong_post (o);
+ }
+
+ else ulonglong_none (o);
+ }
+
+ void DataValue::
+ ulonglong (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::ulonglong_const_iterator b (o.begin_ulonglong()), e (o.end_ulonglong());
+
+ if (b != e)
+ {
+ ulonglong_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) ulonglong_next (o);
+ }
+
+ ulonglong_post (o);
+ }
+
+ else ulonglong_none (o);
+ }
+
+ void DataValue::
+ ulonglong_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_next (Type&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_post (Type&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_none (Type&)
+ {
+ }
+
+ void DataValue::
+ ulonglong_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ longdouble (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::longdouble_iterator b (o.begin_longdouble()), e (o.end_longdouble());
+
+ if (b != e)
+ {
+ longdouble_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) longdouble_next (o);
+ }
+
+ longdouble_post (o);
+ }
+
+ else longdouble_none (o);
+ }
+
+ void DataValue::
+ longdouble (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::longdouble_const_iterator b (o.begin_longdouble()), e (o.end_longdouble());
+
+ if (b != e)
+ {
+ longdouble_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) longdouble_next (o);
+ }
+
+ longdouble_post (o);
+ }
+
+ else longdouble_none (o);
+ }
+
+ void DataValue::
+ longdouble_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ longdouble_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ longdouble_next (Type&)
+ {
+ }
+
+ void DataValue::
+ longdouble_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ longdouble_post (Type&)
+ {
+ }
+
+ void DataValue::
+ longdouble_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ longdouble_none (Type&)
+ {
+ }
+
+ void DataValue::
+ longdouble_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ element (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::element_iterator b (o.begin_element()), e (o.end_element());
+
+ if (b != e)
+ {
+ element_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) element_next (o);
+ }
+
+ element_post (o);
+ }
+
+ else element_none (o);
+ }
+
+ void DataValue::
+ element (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::element_const_iterator b (o.begin_element()), e (o.end_element());
+
+ if (b != e)
+ {
+ element_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) element_next (o);
+ }
+
+ element_post (o);
+ }
+
+ else element_none (o);
+ }
+
+ void DataValue::
+ element_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ element_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ element_next (Type&)
+ {
+ }
+
+ void DataValue::
+ element_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ element_post (Type&)
+ {
+ }
+
+ void DataValue::
+ element_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ element_none (Type&)
+ {
+ }
+
+ void DataValue::
+ element_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ member (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::member_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+
+ else member_none (o);
+ }
+
+ void DataValue::
+ member (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::DataValue::member_const_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+
+ else member_none (o);
+ }
+
+ void DataValue::
+ member_pre (Type&)
+ {
+ }
+
+ void DataValue::
+ member_pre (Type const&)
+ {
+ }
+
+ void DataValue::
+ member_next (Type&)
+ {
+ }
+
+ void DataValue::
+ member_next (Type const&)
+ {
+ }
+
+ void DataValue::
+ member_post (Type&)
+ {
+ }
+
+ void DataValue::
+ member_post (Type const&)
+ {
+ }
+
+ void DataValue::
+ member_none (Type&)
+ {
+ }
+
+ void DataValue::
+ member_none (Type const&)
+ {
+ }
+
+ void DataValue::
+ post (Type&)
+ {
+ }
+
+ void DataValue::
+ post (Type const&)
+ {
+ }
+
+ // AliasType
+ //
+ //
+
+ void AliasType::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ elementType (o);
+ post (o);
+ }
+
+ void AliasType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ elementType (o);
+ post (o);
+ }
+
+ void AliasType::
+ pre (Type&)
+ {
+ }
+
+ void AliasType::
+ pre (Type const&)
+ {
+ }
+
+ void AliasType::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void AliasType::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void AliasType::
+ typeId (Type& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void AliasType::
+ typeId (Type const& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void AliasType::
+ elementType (Type& o)
+ {
+ dispatch (o.elementType ());
+ }
+
+ void AliasType::
+ elementType (Type const& o)
+ {
+ dispatch (o.elementType ());
+ }
+
+ void AliasType::
+ post (Type&)
+ {
+ }
+
+ void AliasType::
+ post (Type const&)
+ {
+ }
+
+ // EnumType
+ //
+ //
+
+ void EnumType::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ member (o);
+ post (o);
+ }
+
+ void EnumType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ member (o);
+ post (o);
+ }
+
+ void EnumType::
+ pre (Type&)
+ {
+ }
+
+ void EnumType::
+ pre (Type const&)
+ {
+ }
+
+ void EnumType::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void EnumType::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void EnumType::
+ typeId (Type& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void EnumType::
+ typeId (Type const& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void EnumType::
+ member (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::EnumType::member_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+ }
+
+ void EnumType::
+ member (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::EnumType::member_const_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+ }
+
+ void EnumType::
+ member_pre (Type&)
+ {
+ }
+
+ void EnumType::
+ member_pre (Type const&)
+ {
+ }
+
+ void EnumType::
+ member_next (Type&)
+ {
+ }
+
+ void EnumType::
+ member_next (Type const&)
+ {
+ }
+
+ void EnumType::
+ member_post (Type&)
+ {
+ }
+
+ void EnumType::
+ member_post (Type const&)
+ {
+ }
+
+ void EnumType::
+ post (Type&)
+ {
+ }
+
+ void EnumType::
+ post (Type const&)
+ {
+ }
+
+ // StructType
+ //
+ //
+
+ void StructType::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ member (o);
+ post (o);
+ }
+
+ void StructType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ member (o);
+ post (o);
+ }
+
+ void StructType::
+ pre (Type&)
+ {
+ }
+
+ void StructType::
+ pre (Type const&)
+ {
+ }
+
+ void StructType::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void StructType::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void StructType::
+ typeId (Type& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void StructType::
+ typeId (Type const& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void StructType::
+ member (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::StructType::member_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+
+ else member_none (o);
+ }
+
+ void StructType::
+ member (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::StructType::member_const_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+
+ else member_none (o);
+ }
+
+ void StructType::
+ member_pre (Type&)
+ {
+ }
+
+ void StructType::
+ member_pre (Type const&)
+ {
+ }
+
+ void StructType::
+ member_next (Type&)
+ {
+ }
+
+ void StructType::
+ member_next (Type const&)
+ {
+ }
+
+ void StructType::
+ member_post (Type&)
+ {
+ }
+
+ void StructType::
+ member_post (Type const&)
+ {
+ }
+
+ void StructType::
+ member_none (Type&)
+ {
+ }
+
+ void StructType::
+ member_none (Type const&)
+ {
+ }
+
+ void StructType::
+ post (Type&)
+ {
+ }
+
+ void StructType::
+ post (Type const&)
+ {
+ }
+
+ // StructMemberType
+ //
+ //
+
+ void StructMemberType::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ type (o);
+ post (o);
+ }
+
+ void StructMemberType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ type (o);
+ post (o);
+ }
+
+ void StructMemberType::
+ pre (Type&)
+ {
+ }
+
+ void StructMemberType::
+ pre (Type const&)
+ {
+ }
+
+ void StructMemberType::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void StructMemberType::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void StructMemberType::
+ type (Type& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void StructMemberType::
+ type (Type const& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void StructMemberType::
+ post (Type&)
+ {
+ }
+
+ void StructMemberType::
+ post (Type const&)
+ {
+ }
+
+ // ValueType
+ //
+ //
+
+ void ValueType::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ modifier (o);
+ baseType (o);
+ member (o);
+ post (o);
+ }
+
+ void ValueType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ typeId (o);
+ modifier (o);
+ baseType (o);
+ member (o);
+ post (o);
+ }
+
+ void ValueType::
+ pre (Type&)
+ {
+ }
+
+ void ValueType::
+ pre (Type const&)
+ {
+ }
+
+ void ValueType::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ValueType::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ValueType::
+ typeId (Type& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void ValueType::
+ typeId (Type const& o)
+ {
+ dispatch (o.typeId ());
+ }
+
+ void ValueType::
+ modifier (Type& o)
+ {
+ dispatch (o.modifier ());
+ }
+
+ void ValueType::
+ modifier (Type const& o)
+ {
+ dispatch (o.modifier ());
+ }
+
+ void ValueType::
+ baseType (Type& o)
+ {
+ dispatch (o.baseType ());
+ }
+
+ void ValueType::
+ baseType (Type const& o)
+ {
+ dispatch (o.baseType ());
+ }
+
+ void ValueType::
+ member (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ValueType::member_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+
+ else member_none (o);
+ }
+
+ void ValueType::
+ member (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ValueType::member_const_iterator b (o.begin_member()), e (o.end_member());
+
+ if (b != e)
+ {
+ member_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) member_next (o);
+ }
+
+ member_post (o);
+ }
+
+ else member_none (o);
+ }
+
+ void ValueType::
+ member_pre (Type&)
+ {
+ }
+
+ void ValueType::
+ member_pre (Type const&)
+ {
+ }
+
+ void ValueType::
+ member_next (Type&)
+ {
+ }
+
+ void ValueType::
+ member_next (Type const&)
+ {
+ }
+
+ void ValueType::
+ member_post (Type&)
+ {
+ }
+
+ void ValueType::
+ member_post (Type const&)
+ {
+ }
+
+ void ValueType::
+ member_none (Type&)
+ {
+ }
+
+ void ValueType::
+ member_none (Type const&)
+ {
+ }
+
+ void ValueType::
+ post (Type&)
+ {
+ }
+
+ void ValueType::
+ post (Type const&)
+ {
+ }
+
+ // ValueMemberType
+ //
+ //
+
+ void ValueMemberType::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ visibility (o);
+ type (o);
+ post (o);
+ }
+
+ void ValueMemberType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ visibility (o);
+ type (o);
+ post (o);
+ }
+
+ void ValueMemberType::
+ pre (Type&)
+ {
+ }
+
+ void ValueMemberType::
+ pre (Type const&)
+ {
+ }
+
+ void ValueMemberType::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ValueMemberType::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ValueMemberType::
+ visibility (Type& o)
+ {
+ dispatch (o.visibility ());
+ }
+
+ void ValueMemberType::
+ visibility (Type const& o)
+ {
+ dispatch (o.visibility ());
+ }
+
+ void ValueMemberType::
+ type (Type& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void ValueMemberType::
+ type (Type const& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void ValueMemberType::
+ post (Type&)
+ {
+ }
+
+ void ValueMemberType::
+ post (Type const&)
+ {
+ }
+
+ // NamedValue
+ //
+ //
+
+ void NamedValue::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ value (o);
+ post (o);
+ }
+
+ void NamedValue::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ value (o);
+ post (o);
+ }
+
+ void NamedValue::
+ pre (Type&)
+ {
+ }
+
+ void NamedValue::
+ pre (Type const&)
+ {
+ }
+
+ void NamedValue::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void NamedValue::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void NamedValue::
+ value (Type& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void NamedValue::
+ value (Type const& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void NamedValue::
+ post (Type&)
+ {
+ }
+
+ void NamedValue::
+ post (Type const&)
+ {
+ }
+
+ // SequenceType
+ //
+ //
+
+ void SequenceType::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.bound_p ()) bound (o);
+ else bound_none (o);
+ elementType (o);
+ post (o);
+ }
+
+ void SequenceType::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.bound_p ()) bound (o);
+ else bound_none (o);
+ elementType (o);
+ post (o);
+ }
+
+ void SequenceType::
+ pre (Type&)
+ {
+ }
+
+ void SequenceType::
+ pre (Type const&)
+ {
+ }
+
+ void SequenceType::
+ bound (Type& o)
+ {
+ dispatch (o.bound ());
+ }
+
+ void SequenceType::
+ bound (Type const& o)
+ {
+ dispatch (o.bound ());
+ }
+
+ void SequenceType::
+ bound_none (Type&)
+ {
+ }
+
+ void SequenceType::
+ bound_none (Type const&)
+ {
+ }
+
+ void SequenceType::
+ elementType (Type& o)
+ {
+ dispatch (o.elementType ());
+ }
+
+ void SequenceType::
+ elementType (Type const& o)
+ {
+ dispatch (o.elementType ());
+ }
+
+ void SequenceType::
+ post (Type&)
+ {
+ }
+
+ void SequenceType::
+ post (Type const&)
+ {
+ }
+
+ // Any
+ //
+ //
+
+ void Any::
+ traverse (Type& o)
+ {
+ pre (o);
+ type (o);
+ value (o);
+ post (o);
+ }
+
+ void Any::
+ traverse (Type const& o)
+ {
+ pre (o);
+ type (o);
+ value (o);
+ post (o);
+ }
+
+ void Any::
+ pre (Type&)
+ {
+ }
+
+ void Any::
+ pre (Type const&)
+ {
+ }
+
+ void Any::
+ type (Type& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void Any::
+ type (Type const& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void Any::
+ value (Type& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void Any::
+ value (Type const& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void Any::
+ post (Type&)
+ {
+ }
+
+ void Any::
+ post (Type const&)
+ {
+ }
+
+ // Property
+ //
+ //
+
+ void Property::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ value (o);
+ post (o);
+ }
+
+ void Property::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ value (o);
+ post (o);
+ }
+
+ void Property::
+ pre (Type&)
+ {
+ }
+
+ void Property::
+ pre (Type const&)
+ {
+ }
+
+ void Property::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Property::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Property::
+ value (Type& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void Property::
+ value (Type const& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void Property::
+ post (Type&)
+ {
+ }
+
+ void Property::
+ post (Type const&)
+ {
+ }
+
+ // SatisfierProperty
+ //
+ //
+
+ void SatisfierProperty::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ kind (o);
+ dynamic (o);
+ value (o);
+ post (o);
+ }
+
+ void SatisfierProperty::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ kind (o);
+ dynamic (o);
+ value (o);
+ post (o);
+ }
+
+ void SatisfierProperty::
+ pre (Type&)
+ {
+ }
+
+ void SatisfierProperty::
+ pre (Type const&)
+ {
+ }
+
+ void SatisfierProperty::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void SatisfierProperty::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void SatisfierProperty::
+ kind (Type& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void SatisfierProperty::
+ kind (Type const& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void SatisfierProperty::
+ dynamic (Type& o)
+ {
+ dispatch (o.dynamic ());
+ }
+
+ void SatisfierProperty::
+ dynamic (Type const& o)
+ {
+ dispatch (o.dynamic ());
+ }
+
+ void SatisfierProperty::
+ value (Type& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void SatisfierProperty::
+ value (Type const& o)
+ {
+ dispatch (o.value ());
+ }
+
+ void SatisfierProperty::
+ post (Type&)
+ {
+ }
+
+ void SatisfierProperty::
+ post (Type const&)
+ {
+ }
+
+ // Resource
+ //
+ //
+
+ void Resource::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ property (o);
+ post (o);
+ }
+
+ void Resource::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ property (o);
+ post (o);
+ }
+
+ void Resource::
+ pre (Type&)
+ {
+ }
+
+ void Resource::
+ pre (Type const&)
+ {
+ }
+
+ void Resource::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Resource::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Resource::
+ resourceType (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Resource::resourceType_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+
+ if (b != e)
+ {
+ resourceType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resourceType_next (o);
+ }
+
+ resourceType_post (o);
+ }
+ }
+
+ void Resource::
+ resourceType (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Resource::resourceType_const_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+
+ if (b != e)
+ {
+ resourceType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resourceType_next (o);
+ }
+
+ resourceType_post (o);
+ }
+ }
+
+ void Resource::
+ resourceType_pre (Type&)
+ {
+ }
+
+ void Resource::
+ resourceType_pre (Type const&)
+ {
+ }
+
+ void Resource::
+ resourceType_next (Type&)
+ {
+ }
+
+ void Resource::
+ resourceType_next (Type const&)
+ {
+ }
+
+ void Resource::
+ resourceType_post (Type&)
+ {
+ }
+
+ void Resource::
+ resourceType_post (Type const&)
+ {
+ }
+
+ void Resource::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Resource::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void Resource::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Resource::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void Resource::
+ property_pre (Type&)
+ {
+ }
+
+ void Resource::
+ property_pre (Type const&)
+ {
+ }
+
+ void Resource::
+ property_next (Type&)
+ {
+ }
+
+ void Resource::
+ property_next (Type const&)
+ {
+ }
+
+ void Resource::
+ property_post (Type&)
+ {
+ }
+
+ void Resource::
+ property_post (Type const&)
+ {
+ }
+
+ void Resource::
+ property_none (Type&)
+ {
+ }
+
+ void Resource::
+ property_none (Type const&)
+ {
+ }
+
+ void Resource::
+ post (Type&)
+ {
+ }
+
+ void Resource::
+ post (Type const&)
+ {
+ }
+
+ // Requirement
+ //
+ //
+
+ void Requirement::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ property (o);
+ post (o);
+ }
+
+ void Requirement::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ property (o);
+ post (o);
+ }
+
+ void Requirement::
+ pre (Type&)
+ {
+ }
+
+ void Requirement::
+ pre (Type const&)
+ {
+ }
+
+ void Requirement::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Requirement::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Requirement::
+ resourceType (Type& o)
+ {
+ dispatch (o.resourceType ());
+ }
+
+ void Requirement::
+ resourceType (Type const& o)
+ {
+ dispatch (o.resourceType ());
+ }
+
+ void Requirement::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Requirement::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void Requirement::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Requirement::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void Requirement::
+ property_pre (Type&)
+ {
+ }
+
+ void Requirement::
+ property_pre (Type const&)
+ {
+ }
+
+ void Requirement::
+ property_next (Type&)
+ {
+ }
+
+ void Requirement::
+ property_next (Type const&)
+ {
+ }
+
+ void Requirement::
+ property_post (Type&)
+ {
+ }
+
+ void Requirement::
+ property_post (Type const&)
+ {
+ }
+
+ void Requirement::
+ property_none (Type&)
+ {
+ }
+
+ void Requirement::
+ property_none (Type const&)
+ {
+ }
+
+ void Requirement::
+ post (Type&)
+ {
+ }
+
+ void Requirement::
+ post (Type const&)
+ {
+ }
+
+ // ResourceDeploymentDescription
+ //
+ //
+
+ void ResourceDeploymentDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ requirementName (o);
+ resourceName (o);
+ property (o);
+ post (o);
+ }
+
+ void ResourceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ requirementName (o);
+ resourceName (o);
+ property (o);
+ post (o);
+ }
+
+ void ResourceDeploymentDescription::
+ pre (Type&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ requirementName (Type& o)
+ {
+ dispatch (o.requirementName ());
+ }
+
+ void ResourceDeploymentDescription::
+ requirementName (Type const& o)
+ {
+ dispatch (o.requirementName ());
+ }
+
+ void ResourceDeploymentDescription::
+ resourceName (Type& o)
+ {
+ dispatch (o.resourceName ());
+ }
+
+ void ResourceDeploymentDescription::
+ resourceName (Type const& o)
+ {
+ dispatch (o.resourceName ());
+ }
+
+ void ResourceDeploymentDescription::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ResourceDeploymentDescription::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ResourceDeploymentDescription::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ResourceDeploymentDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ResourceDeploymentDescription::
+ property_pre (Type&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_pre (Type const&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_next (Type&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_next (Type const&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_post (Type&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_post (Type const&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_none (Type&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ property_none (Type const&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ post (Type&)
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ post (Type const&)
+ {
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ //
+
+ void ArtifactDeploymentDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ source (o);
+ node (o);
+ location (o);
+ execParameter (o);
+ deployRequirement (o);
+ deployedResource (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ source (o);
+ node (o);
+ location (o);
+ execParameter (o);
+ deployRequirement (o);
+ deployedResource (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ pre (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ArtifactDeploymentDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ArtifactDeploymentDescription::
+ source (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::source_iterator b (o.begin_source()), e (o.end_source());
+
+ if (b != e)
+ {
+ source_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) source_next (o);
+ }
+
+ source_post (o);
+ }
+
+ else source_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ source (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::source_const_iterator b (o.begin_source()), e (o.end_source());
+
+ if (b != e)
+ {
+ source_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) source_next (o);
+ }
+
+ source_post (o);
+ }
+
+ else source_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ source_pre (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_pre (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_next (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_next (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_post (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_post (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ node (Type& o)
+ {
+ dispatch (o.node ());
+ }
+
+ void ArtifactDeploymentDescription::
+ node (Type const& o)
+ {
+ dispatch (o.node ());
+ }
+
+ void ArtifactDeploymentDescription::
+ location (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::location_iterator b (o.begin_location()), e (o.end_location());
+
+ if (b != e)
+ {
+ location_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) location_next (o);
+ }
+
+ location_post (o);
+ }
+
+ else location_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ location (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::location_const_iterator b (o.begin_location()), e (o.end_location());
+
+ if (b != e)
+ {
+ location_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) location_next (o);
+ }
+
+ location_post (o);
+ }
+
+ else location_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ location_pre (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_pre (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_next (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_next (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_post (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_post (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+
+ if (b != e)
+ {
+ execParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) execParameter_next (o);
+ }
+
+ execParameter_post (o);
+ }
+
+ else execParameter_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+
+ if (b != e)
+ {
+ execParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) execParameter_next (o);
+ }
+
+ execParameter_post (o);
+ }
+
+ else execParameter_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_pre (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_pre (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_next (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_next (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_post (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_post (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_pre (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_pre (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_next (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_next (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_post (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_post (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::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 ArtifactDeploymentDescription::
+ deployedResource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::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 ArtifactDeploymentDescription::
+ deployedResource_pre (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_pre (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_next (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_next (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_post (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_post (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ id (Type& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void ArtifactDeploymentDescription::
+ id (Type const& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void ArtifactDeploymentDescription::
+ id_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ id_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ post (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ post (Type const&)
+ {
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ //
+
+ void MonolithicDeploymentDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ source (o);
+ artifact (o);
+ execParameter (o);
+ deployRequirement (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ source (o);
+ artifact (o);
+ execParameter (o);
+ deployRequirement (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ pre (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ pre (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void MonolithicDeploymentDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void MonolithicDeploymentDescription::
+ source (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::source_iterator b (o.begin_source()), e (o.end_source());
+
+ if (b != e)
+ {
+ source_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) source_next (o);
+ }
+
+ source_post (o);
+ }
+
+ else source_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ source (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::source_const_iterator b (o.begin_source()), e (o.end_source());
+
+ if (b != e)
+ {
+ source_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) source_next (o);
+ }
+
+ source_post (o);
+ }
+
+ else source_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ source_pre (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_pre (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_next (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_next (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_post (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_post (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::artifact_iterator b (o.begin_artifact()), e (o.end_artifact());
+
+ if (b != e)
+ {
+ artifact_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) artifact_next (o);
+ }
+
+ artifact_post (o);
+ }
+
+ else artifact_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::artifact_const_iterator b (o.begin_artifact()), e (o.end_artifact());
+
+ if (b != e)
+ {
+ artifact_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) artifact_next (o);
+ }
+
+ artifact_post (o);
+ }
+
+ else artifact_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_pre (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_pre (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_next (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_next (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_post (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_post (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+
+ if (b != e)
+ {
+ execParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) execParameter_next (o);
+ }
+
+ execParameter_post (o);
+ }
+
+ else execParameter_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+
+ if (b != e)
+ {
+ execParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) execParameter_next (o);
+ }
+
+ execParameter_post (o);
+ }
+
+ else execParameter_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_pre (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_pre (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_next (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_next (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_post (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_post (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_pre (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_pre (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_next (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_next (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_post (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_post (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ id (Type& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void MonolithicDeploymentDescription::
+ id (Type const& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void MonolithicDeploymentDescription::
+ id_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ id_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ post (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ post (Type const&)
+ {
+ }
+
+ // InstanceResourceDeploymentDescription
+ //
+ //
+
+ void InstanceResourceDeploymentDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ resourceUsage (o);
+ requirementName (o);
+ resourceName (o);
+ property (o);
+ post (o);
+ }
+
+ void InstanceResourceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ resourceUsage (o);
+ requirementName (o);
+ resourceName (o);
+ property (o);
+ post (o);
+ }
+
+ void InstanceResourceDeploymentDescription::
+ pre (Type&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ pre (Type const&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceUsage (Type& o)
+ {
+ dispatch (o.resourceUsage ());
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceUsage (Type const& o)
+ {
+ dispatch (o.resourceUsage ());
+ }
+
+ void InstanceResourceDeploymentDescription::
+ requirementName (Type& o)
+ {
+ dispatch (o.requirementName ());
+ }
+
+ void InstanceResourceDeploymentDescription::
+ requirementName (Type const& o)
+ {
+ dispatch (o.requirementName ());
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceName (Type& o)
+ {
+ dispatch (o.resourceName ());
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceName (Type const& o)
+ {
+ dispatch (o.resourceName ());
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_pre (Type&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_pre (Type const&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_next (Type&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_next (Type const&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_post (Type&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_post (Type const&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_none (Type&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_none (Type const&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ post (Type&)
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ post (Type const&)
+ {
+ }
+
+ // InstanceDeploymentDescription
+ //
+ //
+
+ void InstanceDeploymentDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ node (o);
+ source (o);
+ implementation (o);
+ configProperty (o);
+ deployedResource (o);
+ if (o.deployedSharedResource_p ()) deployedSharedResource (o);
+ else deployedSharedResource_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void InstanceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ node (o);
+ source (o);
+ implementation (o);
+ configProperty (o);
+ deployedResource (o);
+ if (o.deployedSharedResource_p ()) deployedSharedResource (o);
+ else deployedSharedResource_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void InstanceDeploymentDescription::
+ pre (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ pre (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void InstanceDeploymentDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void InstanceDeploymentDescription::
+ node (Type& o)
+ {
+ dispatch (o.node ());
+ }
+
+ void InstanceDeploymentDescription::
+ node (Type const& o)
+ {
+ dispatch (o.node ());
+ }
+
+ void InstanceDeploymentDescription::
+ source (Type& o)
+ {
+ dispatch (o.source ());
+ }
+
+ void InstanceDeploymentDescription::
+ source (Type const& o)
+ {
+ dispatch (o.source ());
+ }
+
+ void InstanceDeploymentDescription::
+ implementation (Type& o)
+ {
+ dispatch (o.implementation ());
+ }
+
+ void InstanceDeploymentDescription::
+ implementation (Type const& o)
+ {
+ dispatch (o.implementation ());
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::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)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::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::
+ deployedResource_none (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_none (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedSharedResource (Type& o)
+ {
+ dispatch (o.deployedSharedResource ());
+ }
+
+ void InstanceDeploymentDescription::
+ deployedSharedResource (Type const& o)
+ {
+ dispatch (o.deployedSharedResource ());
+ }
+
+ void InstanceDeploymentDescription::
+ deployedSharedResource_none (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ deployedSharedResource_none (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ id (Type& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void InstanceDeploymentDescription::
+ id (Type const& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void InstanceDeploymentDescription::
+ id_none (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ id_none (Type const&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ post (Type&)
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ post (Type const&)
+ {
+ }
+
+ // ComponentPortDescription
+ //
+ //
+
+ void ComponentPortDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ if (o.specificType_p ()) specificType (o);
+ else specificType_none (o);
+ supportedType (o);
+ provider (o);
+ exclusiveProvider (o);
+ exclusiveUser (o);
+ optional (o);
+ kind (o);
+ templateParam (o);
+ post (o);
+ }
+
+ void ComponentPortDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ if (o.specificType_p ()) specificType (o);
+ else specificType_none (o);
+ supportedType (o);
+ provider (o);
+ exclusiveProvider (o);
+ exclusiveUser (o);
+ optional (o);
+ kind (o);
+ templateParam (o);
+ post (o);
+ }
+
+ void ComponentPortDescription::
+ pre (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ComponentPortDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ComponentPortDescription::
+ specificType (Type& o)
+ {
+ dispatch (o.specificType ());
+ }
+
+ void ComponentPortDescription::
+ specificType (Type const& o)
+ {
+ dispatch (o.specificType ());
+ }
+
+ void ComponentPortDescription::
+ specificType_none (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ specificType_none (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPortDescription::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+
+ if (b != e)
+ {
+ supportedType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) supportedType_next (o);
+ }
+
+ supportedType_post (o);
+ }
+
+ else supportedType_none (o);
+ }
+
+ void ComponentPortDescription::
+ supportedType (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPortDescription::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+
+ if (b != e)
+ {
+ supportedType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) supportedType_next (o);
+ }
+
+ supportedType_post (o);
+ }
+
+ else supportedType_none (o);
+ }
+
+ void ComponentPortDescription::
+ supportedType_pre (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_pre (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_next (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_next (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_post (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_post (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_none (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ supportedType_none (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ provider (Type& o)
+ {
+ dispatch (o.provider ());
+ }
+
+ void ComponentPortDescription::
+ provider (Type const& o)
+ {
+ dispatch (o.provider ());
+ }
+
+ void ComponentPortDescription::
+ exclusiveProvider (Type& o)
+ {
+ dispatch (o.exclusiveProvider ());
+ }
+
+ void ComponentPortDescription::
+ exclusiveProvider (Type const& o)
+ {
+ dispatch (o.exclusiveProvider ());
+ }
+
+ void ComponentPortDescription::
+ exclusiveUser (Type& o)
+ {
+ dispatch (o.exclusiveUser ());
+ }
+
+ void ComponentPortDescription::
+ exclusiveUser (Type const& o)
+ {
+ dispatch (o.exclusiveUser ());
+ }
+
+ void ComponentPortDescription::
+ optional (Type& o)
+ {
+ dispatch (o.optional ());
+ }
+
+ void ComponentPortDescription::
+ optional (Type const& o)
+ {
+ dispatch (o.optional ());
+ }
+
+ void ComponentPortDescription::
+ kind (Type& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void ComponentPortDescription::
+ kind (Type const& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void ComponentPortDescription::
+ templateParam (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPortDescription::templateParam_iterator b (o.begin_templateParam()), e (o.end_templateParam());
+
+ if (b != e)
+ {
+ templateParam_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) templateParam_next (o);
+ }
+
+ templateParam_post (o);
+ }
+
+ else templateParam_none (o);
+ }
+
+ void ComponentPortDescription::
+ templateParam (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPortDescription::templateParam_const_iterator b (o.begin_templateParam()), e (o.end_templateParam());
+
+ if (b != e)
+ {
+ templateParam_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) templateParam_next (o);
+ }
+
+ templateParam_post (o);
+ }
+
+ else templateParam_none (o);
+ }
+
+ void ComponentPortDescription::
+ templateParam_pre (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_pre (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_next (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_next (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_post (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_post (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_none (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ templateParam_none (Type const&)
+ {
+ }
+
+ void ComponentPortDescription::
+ post (Type&)
+ {
+ }
+
+ void ComponentPortDescription::
+ post (Type const&)
+ {
+ }
+
+ // ComponentPropertyDescription
+ //
+ //
+
+ void ComponentPropertyDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ type (o);
+ post (o);
+ }
+
+ void ComponentPropertyDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ type (o);
+ post (o);
+ }
+
+ void ComponentPropertyDescription::
+ pre (Type&)
+ {
+ }
+
+ void ComponentPropertyDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentPropertyDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ComponentPropertyDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ComponentPropertyDescription::
+ type (Type& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void ComponentPropertyDescription::
+ type (Type const& o)
+ {
+ dispatch (o.type ());
+ }
+
+ void ComponentPropertyDescription::
+ post (Type&)
+ {
+ }
+
+ void ComponentPropertyDescription::
+ post (Type const&)
+ {
+ }
+
+ // ComponentExternalPortEndpoint
+ //
+ //
+
+ void ComponentExternalPortEndpoint::
+ traverse (Type& o)
+ {
+ pre (o);
+ portName (o);
+ post (o);
+ }
+
+ void ComponentExternalPortEndpoint::
+ traverse (Type const& o)
+ {
+ pre (o);
+ portName (o);
+ post (o);
+ }
+
+ void ComponentExternalPortEndpoint::
+ pre (Type&)
+ {
+ }
+
+ void ComponentExternalPortEndpoint::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentExternalPortEndpoint::
+ portName (Type& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void ComponentExternalPortEndpoint::
+ portName (Type const& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void ComponentExternalPortEndpoint::
+ post (Type&)
+ {
+ }
+
+ void ComponentExternalPortEndpoint::
+ post (Type const&)
+ {
+ }
+
+ // PlanSubcomponentPortEndpoint
+ //
+ //
+
+ void PlanSubcomponentPortEndpoint::
+ traverse (Type& o)
+ {
+ pre (o);
+ portName (o);
+ if (o.provider_p ()) provider (o);
+ else provider_none (o);
+ kind (o);
+ instance (o);
+ post (o);
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ traverse (Type const& o)
+ {
+ pre (o);
+ portName (o);
+ if (o.provider_p ()) provider (o);
+ else provider_none (o);
+ kind (o);
+ instance (o);
+ post (o);
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ pre (Type&)
+ {
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ pre (Type const&)
+ {
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ portName (Type& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ portName (Type const& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ provider (Type& o)
+ {
+ dispatch (o.provider ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ provider (Type const& o)
+ {
+ dispatch (o.provider ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ provider_none (Type&)
+ {
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ provider_none (Type const&)
+ {
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ kind (Type& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ kind (Type const& o)
+ {
+ dispatch (o.kind ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ instance (Type& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ instance (Type const& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ post (Type&)
+ {
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ post (Type const&)
+ {
+ }
+
+ // ExternalReferenceEndpoint
+ //
+ //
+
+ void ExternalReferenceEndpoint::
+ traverse (Type& o)
+ {
+ pre (o);
+ location (o);
+ provider (o);
+ if (o.portName_p ()) portName (o);
+ else portName_none (o);
+ supportedType (o);
+ post (o);
+ }
+
+ void ExternalReferenceEndpoint::
+ traverse (Type const& o)
+ {
+ pre (o);
+ location (o);
+ provider (o);
+ if (o.portName_p ()) portName (o);
+ else portName_none (o);
+ supportedType (o);
+ post (o);
+ }
+
+ void ExternalReferenceEndpoint::
+ pre (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ pre (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ location (Type& o)
+ {
+ dispatch (o.location ());
+ }
+
+ void ExternalReferenceEndpoint::
+ location (Type const& o)
+ {
+ dispatch (o.location ());
+ }
+
+ void ExternalReferenceEndpoint::
+ provider (Type& o)
+ {
+ dispatch (o.provider ());
+ }
+
+ void ExternalReferenceEndpoint::
+ provider (Type const& o)
+ {
+ dispatch (o.provider ());
+ }
+
+ void ExternalReferenceEndpoint::
+ portName (Type& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void ExternalReferenceEndpoint::
+ portName (Type const& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void ExternalReferenceEndpoint::
+ portName_none (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ portName_none (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ExternalReferenceEndpoint::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+
+ if (b != e)
+ {
+ supportedType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) supportedType_next (o);
+ }
+
+ supportedType_post (o);
+ }
+
+ else supportedType_none (o);
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ExternalReferenceEndpoint::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+
+ if (b != e)
+ {
+ supportedType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) supportedType_next (o);
+ }
+
+ supportedType_post (o);
+ }
+
+ else supportedType_none (o);
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_pre (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_pre (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_next (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_next (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_post (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_post (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_none (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_none (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ post (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ post (Type const&)
+ {
+ }
+
+ // ConnectionResourceDeploymentDescription
+ //
+ //
+
+ void ConnectionResourceDeploymentDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ targetName (o);
+ requirementName (o);
+ resourceName (o);
+ property (o);
+ post (o);
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ targetName (o);
+ requirementName (o);
+ resourceName (o);
+ property (o);
+ post (o);
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ pre (Type&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ targetName (Type& o)
+ {
+ dispatch (o.targetName ());
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ targetName (Type const& o)
+ {
+ dispatch (o.targetName ());
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ requirementName (Type& o)
+ {
+ dispatch (o.requirementName ());
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ requirementName (Type const& o)
+ {
+ dispatch (o.requirementName ());
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ resourceName (Type& o)
+ {
+ dispatch (o.resourceName ());
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ resourceName (Type const& o)
+ {
+ dispatch (o.resourceName ());
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_pre (Type&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_pre (Type const&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_next (Type&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_next (Type const&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_post (Type&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_post (Type const&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_none (Type&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_none (Type const&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ post (Type&)
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ post (Type const&)
+ {
+ }
+
+ // PlanConnectionDescription
+ //
+ //
+
+ void PlanConnectionDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ if (o.source_p ()) source (o);
+ else source_none (o);
+ deployRequirement (o);
+ externalEndpoint (o);
+ internalEndpoint (o);
+ externalReference (o);
+ deployedResource (o);
+ post (o);
+ }
+
+ void PlanConnectionDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ if (o.source_p ()) source (o);
+ else source_none (o);
+ deployRequirement (o);
+ externalEndpoint (o);
+ internalEndpoint (o);
+ externalReference (o);
+ deployedResource (o);
+ post (o);
+ }
+
+ void PlanConnectionDescription::
+ pre (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ pre (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void PlanConnectionDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void PlanConnectionDescription::
+ source (Type& o)
+ {
+ dispatch (o.source ());
+ }
+
+ void PlanConnectionDescription::
+ source (Type const& o)
+ {
+ dispatch (o.source ());
+ }
+
+ void PlanConnectionDescription::
+ source_none (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ source_none (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_pre (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_pre (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_next (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_next (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_post (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_post (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_none (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_none (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalEndpoint_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+
+ if (b != e)
+ {
+ externalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalEndpoint_next (o);
+ }
+
+ externalEndpoint_post (o);
+ }
+
+ else externalEndpoint_none (o);
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalEndpoint_const_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+
+ if (b != e)
+ {
+ externalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalEndpoint_next (o);
+ }
+
+ externalEndpoint_post (o);
+ }
+
+ else externalEndpoint_none (o);
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_pre (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_pre (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_next (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_next (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_post (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_post (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_none (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_none (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::internalEndpoint_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+
+ if (b != e)
+ {
+ internalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) internalEndpoint_next (o);
+ }
+
+ internalEndpoint_post (o);
+ }
+
+ else internalEndpoint_none (o);
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::internalEndpoint_const_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+
+ if (b != e)
+ {
+ internalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) internalEndpoint_next (o);
+ }
+
+ internalEndpoint_post (o);
+ }
+
+ else internalEndpoint_none (o);
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_pre (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_pre (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_next (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_next (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_post (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_post (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_none (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_none (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalReference_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+
+ if (b != e)
+ {
+ externalReference_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalReference_next (o);
+ }
+
+ externalReference_post (o);
+ }
+
+ else externalReference_none (o);
+ }
+
+ void PlanConnectionDescription::
+ externalReference (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalReference_const_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+
+ if (b != e)
+ {
+ externalReference_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalReference_next (o);
+ }
+
+ externalReference_post (o);
+ }
+
+ else externalReference_none (o);
+ }
+
+ void PlanConnectionDescription::
+ externalReference_pre (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_pre (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_next (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_next (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_post (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_post (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_none (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ externalReference_none (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::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 PlanConnectionDescription::
+ deployedResource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanConnectionDescription::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 PlanConnectionDescription::
+ deployedResource_pre (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_pre (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_next (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_next (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_post (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_post (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_none (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_none (Type const&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ post (Type&)
+ {
+ }
+
+ void PlanConnectionDescription::
+ post (Type const&)
+ {
+ }
+
+ // ImplementationDependency
+ //
+ //
+
+ void ImplementationDependency::
+ traverse (Type& o)
+ {
+ pre (o);
+ requiredType (o);
+ post (o);
+ }
+
+ void ImplementationDependency::
+ traverse (Type const& o)
+ {
+ pre (o);
+ requiredType (o);
+ post (o);
+ }
+
+ void ImplementationDependency::
+ pre (Type&)
+ {
+ }
+
+ void ImplementationDependency::
+ pre (Type const&)
+ {
+ }
+
+ void ImplementationDependency::
+ requiredType (Type& o)
+ {
+ dispatch (o.requiredType ());
+ }
+
+ void ImplementationDependency::
+ requiredType (Type const& o)
+ {
+ dispatch (o.requiredType ());
+ }
+
+ void ImplementationDependency::
+ post (Type&)
+ {
+ }
+
+ void ImplementationDependency::
+ post (Type const&)
+ {
+ }
+
+ // Capability
+ //
+ //
+
+ void Capability::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ property (o);
+ post (o);
+ }
+
+ void Capability::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ property (o);
+ post (o);
+ }
+
+ void Capability::
+ pre (Type&)
+ {
+ }
+
+ void Capability::
+ pre (Type const&)
+ {
+ }
+
+ void Capability::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Capability::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Capability::
+ resourceType (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Capability::resourceType_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+
+ if (b != e)
+ {
+ resourceType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resourceType_next (o);
+ }
+
+ resourceType_post (o);
+ }
+
+ else resourceType_none (o);
+ }
+
+ void Capability::
+ resourceType (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Capability::resourceType_const_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+
+ if (b != e)
+ {
+ resourceType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resourceType_next (o);
+ }
+
+ resourceType_post (o);
+ }
+
+ else resourceType_none (o);
+ }
+
+ void Capability::
+ resourceType_pre (Type&)
+ {
+ }
+
+ void Capability::
+ resourceType_pre (Type const&)
+ {
+ }
+
+ void Capability::
+ resourceType_next (Type&)
+ {
+ }
+
+ void Capability::
+ resourceType_next (Type const&)
+ {
+ }
+
+ void Capability::
+ resourceType_post (Type&)
+ {
+ }
+
+ void Capability::
+ resourceType_post (Type const&)
+ {
+ }
+
+ void Capability::
+ resourceType_none (Type&)
+ {
+ }
+
+ void Capability::
+ resourceType_none (Type const&)
+ {
+ }
+
+ void Capability::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Capability::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void Capability::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Capability::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void Capability::
+ property_pre (Type&)
+ {
+ }
+
+ void Capability::
+ property_pre (Type const&)
+ {
+ }
+
+ void Capability::
+ property_next (Type&)
+ {
+ }
+
+ void Capability::
+ property_next (Type const&)
+ {
+ }
+
+ void Capability::
+ property_post (Type&)
+ {
+ }
+
+ void Capability::
+ property_post (Type const&)
+ {
+ }
+
+ void Capability::
+ property_none (Type&)
+ {
+ }
+
+ void Capability::
+ property_none (Type const&)
+ {
+ }
+
+ void Capability::
+ post (Type&)
+ {
+ }
+
+ void Capability::
+ post (Type const&)
+ {
+ }
+
+ // ImplementationRequirement
+ //
+ //
+
+ void ImplementationRequirement::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.resourceUsage_p ()) resourceUsage (o);
+ else resourceUsage_none (o);
+ if (o.resourcePort_p ()) resourcePort (o);
+ else resourcePort_none (o);
+ if (o.componentPort_p ()) componentPort (o);
+ else componentPort_none (o);
+ resourceType (o);
+ name (o);
+ property (o);
+ post (o);
+ }
+
+ void ImplementationRequirement::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.resourceUsage_p ()) resourceUsage (o);
+ else resourceUsage_none (o);
+ if (o.resourcePort_p ()) resourcePort (o);
+ else resourcePort_none (o);
+ if (o.componentPort_p ()) componentPort (o);
+ else componentPort_none (o);
+ resourceType (o);
+ name (o);
+ property (o);
+ post (o);
+ }
+
+ void ImplementationRequirement::
+ pre (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ pre (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ resourceUsage (Type& o)
+ {
+ dispatch (o.resourceUsage ());
+ }
+
+ void ImplementationRequirement::
+ resourceUsage (Type const& o)
+ {
+ dispatch (o.resourceUsage ());
+ }
+
+ void ImplementationRequirement::
+ resourceUsage_none (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ resourceUsage_none (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ resourcePort (Type& o)
+ {
+ dispatch (o.resourcePort ());
+ }
+
+ void ImplementationRequirement::
+ resourcePort (Type const& o)
+ {
+ dispatch (o.resourcePort ());
+ }
+
+ void ImplementationRequirement::
+ resourcePort_none (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ resourcePort_none (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ componentPort (Type& o)
+ {
+ dispatch (o.componentPort ());
+ }
+
+ void ImplementationRequirement::
+ componentPort (Type const& o)
+ {
+ dispatch (o.componentPort ());
+ }
+
+ void ImplementationRequirement::
+ componentPort_none (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ componentPort_none (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ resourceType (Type& o)
+ {
+ dispatch (o.resourceType ());
+ }
+
+ void ImplementationRequirement::
+ resourceType (Type const& o)
+ {
+ dispatch (o.resourceType ());
+ }
+
+ void ImplementationRequirement::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ImplementationRequirement::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void ImplementationRequirement::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationRequirement::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ImplementationRequirement::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationRequirement::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ImplementationRequirement::
+ property_pre (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_pre (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_next (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_next (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_post (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_post (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_none (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ property_none (Type const&)
+ {
+ }
+
+ void ImplementationRequirement::
+ post (Type&)
+ {
+ }
+
+ void ImplementationRequirement::
+ post (Type const&)
+ {
+ }
+
+ // SubcomponentPortEndpoint
+ //
+ //
+
+ void SubcomponentPortEndpoint::
+ traverse (Type& o)
+ {
+ pre (o);
+ portName (o);
+ instance (o);
+ post (o);
+ }
+
+ void SubcomponentPortEndpoint::
+ traverse (Type const& o)
+ {
+ pre (o);
+ portName (o);
+ instance (o);
+ post (o);
+ }
+
+ void SubcomponentPortEndpoint::
+ pre (Type&)
+ {
+ }
+
+ void SubcomponentPortEndpoint::
+ pre (Type const&)
+ {
+ }
+
+ void SubcomponentPortEndpoint::
+ portName (Type& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void SubcomponentPortEndpoint::
+ portName (Type const& o)
+ {
+ dispatch (o.portName ());
+ }
+
+ void SubcomponentPortEndpoint::
+ instance (Type& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void SubcomponentPortEndpoint::
+ instance (Type const& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void SubcomponentPortEndpoint::
+ post (Type&)
+ {
+ }
+
+ void SubcomponentPortEndpoint::
+ post (Type const&)
+ {
+ }
+
+ // AssemblyConnectionDescription
+ //
+ //
+
+ void AssemblyConnectionDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ deployRequirement (o);
+ internalEndpoint (o);
+ externalEndpoint (o);
+ externalReference (o);
+ post (o);
+ }
+
+ void AssemblyConnectionDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ deployRequirement (o);
+ internalEndpoint (o);
+ externalEndpoint (o);
+ externalReference (o);
+ post (o);
+ }
+
+ void AssemblyConnectionDescription::
+ pre (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ pre (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void AssemblyConnectionDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_pre (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_pre (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_next (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_next (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_post (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_post (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_none (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_none (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::internalEndpoint_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+
+ if (b != e)
+ {
+ internalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) internalEndpoint_next (o);
+ }
+
+ internalEndpoint_post (o);
+ }
+
+ else internalEndpoint_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::internalEndpoint_const_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+
+ if (b != e)
+ {
+ internalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) internalEndpoint_next (o);
+ }
+
+ internalEndpoint_post (o);
+ }
+
+ else internalEndpoint_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_pre (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_pre (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_next (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_next (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_post (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_post (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_none (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_none (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalEndpoint_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+
+ if (b != e)
+ {
+ externalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalEndpoint_next (o);
+ }
+
+ externalEndpoint_post (o);
+ }
+
+ else externalEndpoint_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalEndpoint_const_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+
+ if (b != e)
+ {
+ externalEndpoint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalEndpoint_next (o);
+ }
+
+ externalEndpoint_post (o);
+ }
+
+ else externalEndpoint_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_pre (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_pre (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_next (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_next (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_post (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_post (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_none (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_none (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalReference_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+
+ if (b != e)
+ {
+ externalReference_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalReference_next (o);
+ }
+
+ externalReference_post (o);
+ }
+
+ else externalReference_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalReference_const_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+
+ if (b != e)
+ {
+ externalReference_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalReference_next (o);
+ }
+
+ externalReference_post (o);
+ }
+
+ else externalReference_none (o);
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_pre (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_pre (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_next (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_next (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_post (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_post (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_none (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_none (Type const&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ post (Type&)
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ post (Type const&)
+ {
+ }
+
+ // PlanLocality
+ //
+ //
+
+ void PlanLocality::
+ traverse (Type& o)
+ {
+ pre (o);
+ constraint (o);
+ constrainedInstance (o);
+ post (o);
+ }
+
+ void PlanLocality::
+ traverse (Type const& o)
+ {
+ pre (o);
+ constraint (o);
+ constrainedInstance (o);
+ post (o);
+ }
+
+ void PlanLocality::
+ pre (Type&)
+ {
+ }
+
+ void PlanLocality::
+ pre (Type const&)
+ {
+ }
+
+ void PlanLocality::
+ constraint (Type& o)
+ {
+ dispatch (o.constraint ());
+ }
+
+ void PlanLocality::
+ constraint (Type const& o)
+ {
+ dispatch (o.constraint ());
+ }
+
+ void PlanLocality::
+ constrainedInstance (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanLocality::constrainedInstance_iterator b (o.begin_constrainedInstance()), e (o.end_constrainedInstance());
+
+ if (b != e)
+ {
+ constrainedInstance_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) constrainedInstance_next (o);
+ }
+
+ constrainedInstance_post (o);
+ }
+ }
+
+ void PlanLocality::
+ constrainedInstance (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanLocality::constrainedInstance_const_iterator b (o.begin_constrainedInstance()), e (o.end_constrainedInstance());
+
+ if (b != e)
+ {
+ constrainedInstance_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) constrainedInstance_next (o);
+ }
+
+ constrainedInstance_post (o);
+ }
+ }
+
+ void PlanLocality::
+ constrainedInstance_pre (Type&)
+ {
+ }
+
+ void PlanLocality::
+ constrainedInstance_pre (Type const&)
+ {
+ }
+
+ void PlanLocality::
+ constrainedInstance_next (Type&)
+ {
+ }
+
+ void PlanLocality::
+ constrainedInstance_next (Type const&)
+ {
+ }
+
+ void PlanLocality::
+ constrainedInstance_post (Type&)
+ {
+ }
+
+ void PlanLocality::
+ constrainedInstance_post (Type const&)
+ {
+ }
+
+ void PlanLocality::
+ post (Type&)
+ {
+ }
+
+ void PlanLocality::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // IdRef
+ //
+ //
+
+ IdRef::
+ IdRef (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ IdRef::
+ IdRef ()
+ {
+ }
+
+ void IdRef::
+ traverse (Type const& o)
+ {
+ Traversal::IdRef::traverse (o);
+ }
+
+ void IdRef::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::IdRef::href (o);
+ attr_ (0);
+ }
+
+ void IdRef::
+ idref (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("idref"), ACE_TEXT ("http://www.omg.org/Deployment"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::IdRef::idref (o);
+ attr_ (0);
+ }
+
+ // TCKind
+ //
+ //
+
+ TCKind::
+ TCKind (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ TCKind::
+ TCKind ()
+ {
+ }
+
+ void TCKind::
+ traverse (Type const& o)
+ {
+ ::std::basic_string< ACE_TCHAR > s;
+
+ if (o == ::CIAO::Config_Handlers::TCKind::tk_null) s = ACE_TEXT ("tk_null");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_void) s = ACE_TEXT ("tk_void");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_short) s = ACE_TEXT ("tk_short");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_long) s = ACE_TEXT ("tk_long");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_ushort) s = ACE_TEXT ("tk_ushort");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_ulong) s = ACE_TEXT ("tk_ulong");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_float) s = ACE_TEXT ("tk_float");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_double) s = ACE_TEXT ("tk_double");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_boolean) s = ACE_TEXT ("tk_boolean");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_char) s = ACE_TEXT ("tk_char");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_octet) s = ACE_TEXT ("tk_octet");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_any) s = ACE_TEXT ("tk_any");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_TypeCode) s = ACE_TEXT ("tk_TypeCode");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_Principal) s = ACE_TEXT ("tk_Principal");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_objref) s = ACE_TEXT ("tk_objref");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_struct) s = ACE_TEXT ("tk_struct");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_union) s = ACE_TEXT ("tk_union");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_enum) s = ACE_TEXT ("tk_enum");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_string) s = ACE_TEXT ("tk_string");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_sequence) s = ACE_TEXT ("tk_sequence");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_array) s = ACE_TEXT ("tk_array");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_alias) s = ACE_TEXT ("tk_alias");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_except) s = ACE_TEXT ("tk_except");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_longlong) s = ACE_TEXT ("tk_longlong");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_ulonglong) s = ACE_TEXT ("tk_ulonglong");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_longdouble) s = ACE_TEXT ("tk_longdouble");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_wchar) s = ACE_TEXT ("tk_wchar");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_wstring) s = ACE_TEXT ("tk_wstring");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_fixed) s = ACE_TEXT ("tk_fixed");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_value) s = ACE_TEXT ("tk_value");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_value_box) s = ACE_TEXT ("tk_value_box");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_native) s = ACE_TEXT ("tk_native");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_abstract_interface) s = ACE_TEXT ("tk_abstract_interface");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_local_interface) s = ACE_TEXT ("tk_local_interface");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_component) s = ACE_TEXT ("tk_component");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_home) s = ACE_TEXT ("tk_home");
+ else if (o == ::CIAO::Config_Handlers::TCKind::tk_event) s = ACE_TEXT ("tk_event");
+ else
+ {
+ }
+
+ if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ())
+ {
+ a->value (s);
+ }
+
+ else
+ {
+ top_().value (s);
+ }
+ }
+
+ // DataType
+ //
+ //
+
+ DataType::
+ DataType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ DataType::
+ DataType ()
+ {
+ }
+
+ void DataType::
+ traverse (Type const& o)
+ {
+ Traversal::DataType::traverse (o);
+ }
+
+ void DataType::
+ kind (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("kind"), top_ ()));
+ Traversal::DataType::kind (o);
+ pop_ ();
+ }
+
+ void DataType::
+ enum_ (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("enum"), top_ ()));
+ Traversal::DataType::enum_ (o);
+ pop_ ();
+ }
+
+ void DataType::
+ struct_ (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("struct"), top_ ()));
+ Traversal::DataType::struct_ (o);
+ pop_ ();
+ }
+
+ void DataType::
+ value (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("value"), top_ ()));
+ Traversal::DataType::value (o);
+ pop_ ();
+ }
+
+ void DataType::
+ sequence (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("sequence"), top_ ()));
+ Traversal::DataType::sequence (o);
+ pop_ ();
+ }
+
+ void DataType::
+ alias (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("alias"), top_ ()));
+ Traversal::DataType::alias (o);
+ pop_ ();
+ }
+
+ void DataType::
+ id (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("id"), ACE_TEXT ("http://www.omg.org/Deployment"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::DataType::id (o);
+ attr_ (0);
+ }
+
+ // DataValue
+ //
+ //
+
+ DataValue::
+ DataValue (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ DataValue::
+ DataValue ()
+ {
+ }
+
+ void DataValue::
+ traverse (Type const& o)
+ {
+ Traversal::DataValue::traverse (o);
+ }
+
+ void DataValue::
+ short_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("short"), top_ ()));
+ }
+
+ void DataValue::
+ short_next (Type const& o)
+ {
+ short_post (o);
+ short_pre (o);
+ }
+
+ void DataValue::
+ short_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ long_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("long"), top_ ()));
+ }
+
+ void DataValue::
+ long_next (Type const& o)
+ {
+ long_post (o);
+ long_pre (o);
+ }
+
+ void DataValue::
+ long_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ ushort_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("ushort"), top_ ()));
+ }
+
+ void DataValue::
+ ushort_next (Type const& o)
+ {
+ ushort_post (o);
+ ushort_pre (o);
+ }
+
+ void DataValue::
+ ushort_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ ulong_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("ulong"), top_ ()));
+ }
+
+ void DataValue::
+ ulong_next (Type const& o)
+ {
+ ulong_post (o);
+ ulong_pre (o);
+ }
+
+ void DataValue::
+ ulong_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ float_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("float"), top_ ()));
+ }
+
+ void DataValue::
+ float_next (Type const& o)
+ {
+ float_post (o);
+ float_pre (o);
+ }
+
+ void DataValue::
+ float_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ double_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("double"), top_ ()));
+ }
+
+ void DataValue::
+ double_next (Type const& o)
+ {
+ double_post (o);
+ double_pre (o);
+ }
+
+ void DataValue::
+ double_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ boolean_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("boolean"), top_ ()));
+ }
+
+ void DataValue::
+ boolean_next (Type const& o)
+ {
+ boolean_post (o);
+ boolean_pre (o);
+ }
+
+ void DataValue::
+ boolean_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ octet_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("octet"), top_ ()));
+ }
+
+ void DataValue::
+ octet_next (Type const& o)
+ {
+ octet_post (o);
+ octet_pre (o);
+ }
+
+ void DataValue::
+ octet_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ enum_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("enum"), top_ ()));
+ }
+
+ void DataValue::
+ enum_next (Type const& o)
+ {
+ enum_post (o);
+ enum_pre (o);
+ }
+
+ void DataValue::
+ enum_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ string_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("string"), top_ ()));
+ }
+
+ void DataValue::
+ string_next (Type const& o)
+ {
+ string_post (o);
+ string_pre (o);
+ }
+
+ void DataValue::
+ string_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ longlong_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("longlong"), top_ ()));
+ }
+
+ void DataValue::
+ longlong_next (Type const& o)
+ {
+ longlong_post (o);
+ longlong_pre (o);
+ }
+
+ void DataValue::
+ longlong_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ ulonglong_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("ulonglong"), top_ ()));
+ }
+
+ void DataValue::
+ ulonglong_next (Type const& o)
+ {
+ ulonglong_post (o);
+ ulonglong_pre (o);
+ }
+
+ void DataValue::
+ ulonglong_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ longdouble_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("longdouble"), top_ ()));
+ }
+
+ void DataValue::
+ longdouble_next (Type const& o)
+ {
+ longdouble_post (o);
+ longdouble_pre (o);
+ }
+
+ void DataValue::
+ longdouble_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ element_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("element"), top_ ()));
+ }
+
+ void DataValue::
+ element_next (Type const& o)
+ {
+ element_post (o);
+ element_pre (o);
+ }
+
+ void DataValue::
+ element_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void DataValue::
+ member_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("member"), top_ ()));
+ }
+
+ void DataValue::
+ member_next (Type const& o)
+ {
+ member_post (o);
+ member_pre (o);
+ }
+
+ void DataValue::
+ member_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // AliasType
+ //
+ //
+
+ AliasType::
+ AliasType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ AliasType::
+ AliasType ()
+ {
+ }
+
+ void AliasType::
+ traverse (Type const& o)
+ {
+ Traversal::AliasType::traverse (o);
+ }
+
+ void AliasType::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::AliasType::name (o);
+ pop_ ();
+ }
+
+ void AliasType::
+ typeId (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("typeId"), top_ ()));
+ Traversal::AliasType::typeId (o);
+ pop_ ();
+ }
+
+ void AliasType::
+ elementType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("elementType"), top_ ()));
+ Traversal::AliasType::elementType (o);
+ pop_ ();
+ }
+
+ // EnumType
+ //
+ //
+
+ EnumType::
+ EnumType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ EnumType::
+ EnumType ()
+ {
+ }
+
+ void EnumType::
+ traverse (Type const& o)
+ {
+ Traversal::EnumType::traverse (o);
+ }
+
+ void EnumType::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::EnumType::name (o);
+ pop_ ();
+ }
+
+ void EnumType::
+ typeId (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("typeId"), top_ ()));
+ Traversal::EnumType::typeId (o);
+ pop_ ();
+ }
+
+ void EnumType::
+ member_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("member"), top_ ()));
+ }
+
+ void EnumType::
+ member_next (Type const& o)
+ {
+ member_post (o);
+ member_pre (o);
+ }
+
+ void EnumType::
+ member_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // StructType
+ //
+ //
+
+ StructType::
+ StructType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ StructType::
+ StructType ()
+ {
+ }
+
+ void StructType::
+ traverse (Type const& o)
+ {
+ Traversal::StructType::traverse (o);
+ }
+
+ void StructType::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::StructType::name (o);
+ pop_ ();
+ }
+
+ void StructType::
+ typeId (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("typeId"), top_ ()));
+ Traversal::StructType::typeId (o);
+ pop_ ();
+ }
+
+ void StructType::
+ member_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("member"), top_ ()));
+ }
+
+ void StructType::
+ member_next (Type const& o)
+ {
+ member_post (o);
+ member_pre (o);
+ }
+
+ void StructType::
+ member_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // StructMemberType
+ //
+ //
+
+ StructMemberType::
+ StructMemberType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ StructMemberType::
+ StructMemberType ()
+ {
+ }
+
+ void StructMemberType::
+ traverse (Type const& o)
+ {
+ Traversal::StructMemberType::traverse (o);
+ }
+
+ void StructMemberType::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::StructMemberType::name (o);
+ pop_ ();
+ }
+
+ void StructMemberType::
+ type (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("type"), top_ ()));
+ Traversal::StructMemberType::type (o);
+ pop_ ();
+ }
+
+ // ValueType
+ //
+ //
+
+ ValueType::
+ ValueType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ValueType::
+ ValueType ()
+ {
+ }
+
+ void ValueType::
+ traverse (Type const& o)
+ {
+ Traversal::ValueType::traverse (o);
+ }
+
+ void ValueType::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::ValueType::name (o);
+ pop_ ();
+ }
+
+ void ValueType::
+ typeId (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("typeId"), top_ ()));
+ Traversal::ValueType::typeId (o);
+ pop_ ();
+ }
+
+ void ValueType::
+ modifier (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("modifier"), top_ ()));
+ Traversal::ValueType::modifier (o);
+ pop_ ();
+ }
+
+ void ValueType::
+ baseType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("baseType"), top_ ()));
+ Traversal::ValueType::baseType (o);
+ pop_ ();
+ }
+
+ void ValueType::
+ member_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("member"), top_ ()));
+ }
+
+ void ValueType::
+ member_next (Type const& o)
+ {
+ member_post (o);
+ member_pre (o);
+ }
+
+ void ValueType::
+ member_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ValueMemberType
+ //
+ //
+
+ ValueMemberType::
+ ValueMemberType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ValueMemberType::
+ ValueMemberType ()
+ {
+ }
+
+ void ValueMemberType::
+ traverse (Type const& o)
+ {
+ Traversal::ValueMemberType::traverse (o);
+ }
+
+ void ValueMemberType::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::ValueMemberType::name (o);
+ pop_ ();
+ }
+
+ void ValueMemberType::
+ visibility (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("visibility"), top_ ()));
+ Traversal::ValueMemberType::visibility (o);
+ pop_ ();
+ }
+
+ void ValueMemberType::
+ type (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("type"), top_ ()));
+ Traversal::ValueMemberType::type (o);
+ pop_ ();
+ }
+
+ // NamedValue
+ //
+ //
+
+ NamedValue::
+ NamedValue (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ NamedValue::
+ NamedValue ()
+ {
+ }
+
+ void NamedValue::
+ traverse (Type const& o)
+ {
+ Traversal::NamedValue::traverse (o);
+ }
+
+ void NamedValue::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::NamedValue::name (o);
+ pop_ ();
+ }
+
+ void NamedValue::
+ value (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("value"), top_ ()));
+ Traversal::NamedValue::value (o);
+ pop_ ();
+ }
+
+ // SequenceType
+ //
+ //
+
+ SequenceType::
+ SequenceType (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SequenceType::
+ SequenceType ()
+ {
+ }
+
+ void SequenceType::
+ traverse (Type const& o)
+ {
+ Traversal::SequenceType::traverse (o);
+ }
+
+ void SequenceType::
+ bound (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("bound"), top_ ()));
+ Traversal::SequenceType::bound (o);
+ pop_ ();
+ }
+
+ void SequenceType::
+ elementType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("elementType"), top_ ()));
+ Traversal::SequenceType::elementType (o);
+ pop_ ();
+ }
+
+ // Any
+ //
+ //
+
+ Any::
+ Any (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Any::
+ Any ()
+ {
+ }
+
+ void Any::
+ traverse (Type const& o)
+ {
+ Traversal::Any::traverse (o);
+ }
+
+ void Any::
+ type (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("type"), top_ ()));
+ Traversal::Any::type (o);
+ pop_ ();
+ }
+
+ void Any::
+ value (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("value"), top_ ()));
+ Traversal::Any::value (o);
+ pop_ ();
+ }
+
+ // Property
+ //
+ //
+
+ Property::
+ Property (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Property::
+ Property ()
+ {
+ }
+
+ void Property::
+ traverse (Type const& o)
+ {
+ Traversal::Property::traverse (o);
+ }
+
+ void Property::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Property::name (o);
+ pop_ ();
+ }
+
+ void Property::
+ value (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("value"), top_ ()));
+ Traversal::Property::value (o);
+ pop_ ();
+ }
+
+ // SatisfierPropertyKind
+ //
+ //
+
+ SatisfierPropertyKind::
+ SatisfierPropertyKind (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SatisfierPropertyKind::
+ SatisfierPropertyKind ()
+ {
+ }
+
+ void SatisfierPropertyKind::
+ traverse (Type const& o)
+ {
+ ::std::basic_string< ACE_TCHAR > s;
+
+ if (o == ::CIAO::Config_Handlers::SatisfierPropertyKind::Quantity) s = ACE_TEXT ("Quantity");
+ else if (o == ::CIAO::Config_Handlers::SatisfierPropertyKind::Capacity) s = ACE_TEXT ("Capacity");
+ else if (o == ::CIAO::Config_Handlers::SatisfierPropertyKind::Minimum) s = ACE_TEXT ("Minimum");
+ else if (o == ::CIAO::Config_Handlers::SatisfierPropertyKind::Maximum) s = ACE_TEXT ("Maximum");
+ else if (o == ::CIAO::Config_Handlers::SatisfierPropertyKind::Attribute) s = ACE_TEXT ("Attribute");
+ else if (o == ::CIAO::Config_Handlers::SatisfierPropertyKind::Selection) s = ACE_TEXT ("Selection");
+ else
+ {
+ }
+
+ if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ())
+ {
+ a->value (s);
+ }
+
+ else
+ {
+ top_().value (s);
+ }
+ }
+
+ // SatisfierProperty
+ //
+ //
+
+ SatisfierProperty::
+ SatisfierProperty (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SatisfierProperty::
+ SatisfierProperty ()
+ {
+ }
+
+ void SatisfierProperty::
+ traverse (Type const& o)
+ {
+ Traversal::SatisfierProperty::traverse (o);
+ }
+
+ void SatisfierProperty::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::SatisfierProperty::name (o);
+ pop_ ();
+ }
+
+ void SatisfierProperty::
+ kind (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("kind"), top_ ()));
+ Traversal::SatisfierProperty::kind (o);
+ pop_ ();
+ }
+
+ void SatisfierProperty::
+ dynamic (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("dynamic"), top_ ()));
+ Traversal::SatisfierProperty::dynamic (o);
+ pop_ ();
+ }
+
+ void SatisfierProperty::
+ value (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("value"), top_ ()));
+ Traversal::SatisfierProperty::value (o);
+ pop_ ();
+ }
+
+ // Resource
+ //
+ //
+
+ Resource::
+ Resource (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Resource::
+ Resource ()
+ {
+ }
+
+ void Resource::
+ traverse (Type const& o)
+ {
+ Traversal::Resource::traverse (o);
+ }
+
+ void Resource::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Resource::name (o);
+ pop_ ();
+ }
+
+ void Resource::
+ resourceType_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceType"), top_ ()));
+ }
+
+ void Resource::
+ resourceType_next (Type const& o)
+ {
+ resourceType_post (o);
+ resourceType_pre (o);
+ }
+
+ void Resource::
+ resourceType_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Resource::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void Resource::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void Resource::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // Requirement
+ //
+ //
+
+ Requirement::
+ Requirement (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Requirement::
+ Requirement ()
+ {
+ }
+
+ void Requirement::
+ traverse (Type const& o)
+ {
+ Traversal::Requirement::traverse (o);
+ }
+
+ void Requirement::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Requirement::name (o);
+ pop_ ();
+ }
+
+ void Requirement::
+ resourceType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceType"), top_ ()));
+ Traversal::Requirement::resourceType (o);
+ pop_ ();
+ }
+
+ void Requirement::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void Requirement::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void Requirement::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ResourceDeploymentDescription
+ //
+ //
+
+ ResourceDeploymentDescription::
+ ResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ResourceDeploymentDescription::
+ ResourceDeploymentDescription ()
+ {
+ }
+
+ void ResourceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ResourceDeploymentDescription::traverse (o);
+ }
+
+ void ResourceDeploymentDescription::
+ requirementName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requirementName"), top_ ()));
+ Traversal::ResourceDeploymentDescription::requirementName (o);
+ pop_ ();
+ }
+
+ void ResourceDeploymentDescription::
+ resourceName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceName"), top_ ()));
+ Traversal::ResourceDeploymentDescription::resourceName (o);
+ pop_ ();
+ }
+
+ void ResourceDeploymentDescription::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void ResourceDeploymentDescription::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void ResourceDeploymentDescription::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ArtifactDeploymentDescription
+ //
+ //
+
+ ArtifactDeploymentDescription::
+ ArtifactDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ArtifactDeploymentDescription::
+ ArtifactDeploymentDescription ()
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ArtifactDeploymentDescription::traverse (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::ArtifactDeploymentDescription::name (o);
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ source_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("source"), top_ ()));
+ }
+
+ void ArtifactDeploymentDescription::
+ source_next (Type const& o)
+ {
+ source_post (o);
+ source_pre (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ source_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ node (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("node"), top_ ()));
+ Traversal::ArtifactDeploymentDescription::node (o);
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ location_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("location"), top_ ()));
+ }
+
+ void ArtifactDeploymentDescription::
+ location_next (Type const& o)
+ {
+ location_post (o);
+ location_pre (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ location_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("execParameter"), top_ ()));
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_next (Type const& o)
+ {
+ execParameter_post (o);
+ execParameter_pre (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ execParameter_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployRequirement"), top_ ()));
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_next (Type const& o)
+ {
+ deployRequirement_post (o);
+ deployRequirement_pre (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ deployRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployedResource"), top_ ()));
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_next (Type const& o)
+ {
+ deployedResource_post (o);
+ deployedResource_pre (o);
+ }
+
+ void ArtifactDeploymentDescription::
+ deployedResource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ArtifactDeploymentDescription::
+ id (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("id"), ACE_TEXT ("http://www.omg.org/Deployment"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ArtifactDeploymentDescription::id (o);
+ attr_ (0);
+ }
+
+ // MonolithicDeploymentDescription
+ //
+ //
+
+ MonolithicDeploymentDescription::
+ MonolithicDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ MonolithicDeploymentDescription::
+ MonolithicDeploymentDescription ()
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ traverse (Type const& o)
+ {
+ Traversal::MonolithicDeploymentDescription::traverse (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::MonolithicDeploymentDescription::name (o);
+ pop_ ();
+ }
+
+ void MonolithicDeploymentDescription::
+ source_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("source"), top_ ()));
+ }
+
+ void MonolithicDeploymentDescription::
+ source_next (Type const& o)
+ {
+ source_post (o);
+ source_pre (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ source_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("artifact"), top_ ()));
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_next (Type const& o)
+ {
+ artifact_post (o);
+ artifact_pre (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("execParameter"), top_ ()));
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_next (Type const& o)
+ {
+ execParameter_post (o);
+ execParameter_pre (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ execParameter_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployRequirement"), top_ ()));
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_next (Type const& o)
+ {
+ deployRequirement_post (o);
+ deployRequirement_pre (o);
+ }
+
+ void MonolithicDeploymentDescription::
+ deployRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicDeploymentDescription::
+ id (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("id"), ACE_TEXT ("http://www.omg.org/Deployment"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::MonolithicDeploymentDescription::id (o);
+ attr_ (0);
+ }
+
+ // ResourceUsageKind
+ //
+ //
+
+ ResourceUsageKind::
+ ResourceUsageKind (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ResourceUsageKind::
+ ResourceUsageKind ()
+ {
+ }
+
+ void ResourceUsageKind::
+ traverse (Type const& o)
+ {
+ ::std::basic_string< ACE_TCHAR > s;
+
+ if (o == ::CIAO::Config_Handlers::ResourceUsageKind::None) s = ACE_TEXT ("None");
+ else if (o == ::CIAO::Config_Handlers::ResourceUsageKind::InstanceUsesResource) s = ACE_TEXT ("InstanceUsesResource");
+ else if (o == ::CIAO::Config_Handlers::ResourceUsageKind::ResourceUsesInstance) s = ACE_TEXT ("ResourceUsesInstance");
+ else if (o == ::CIAO::Config_Handlers::ResourceUsageKind::PortUsesResource) s = ACE_TEXT ("PortUsesResource");
+ else if (o == ::CIAO::Config_Handlers::ResourceUsageKind::ResourceUsesPort) s = ACE_TEXT ("ResourceUsesPort");
+ else
+ {
+ }
+
+ if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ())
+ {
+ a->value (s);
+ }
+
+ else
+ {
+ top_().value (s);
+ }
+ }
+
+ // InstanceResourceDeploymentDescription
+ //
+ //
+
+ InstanceResourceDeploymentDescription::
+ InstanceResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ InstanceResourceDeploymentDescription::
+ InstanceResourceDeploymentDescription ()
+ {
+ }
+
+ void InstanceResourceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ Traversal::InstanceResourceDeploymentDescription::traverse (o);
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceUsage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceUsage"), top_ ()));
+ Traversal::InstanceResourceDeploymentDescription::resourceUsage (o);
+ pop_ ();
+ }
+
+ void InstanceResourceDeploymentDescription::
+ requirementName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requirementName"), top_ ()));
+ Traversal::InstanceResourceDeploymentDescription::requirementName (o);
+ pop_ ();
+ }
+
+ void InstanceResourceDeploymentDescription::
+ resourceName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceName"), top_ ()));
+ Traversal::InstanceResourceDeploymentDescription::resourceName (o);
+ pop_ ();
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void InstanceResourceDeploymentDescription::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // InstanceDeploymentDescription
+ //
+ //
+
+ InstanceDeploymentDescription::
+ InstanceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ InstanceDeploymentDescription::
+ InstanceDeploymentDescription ()
+ {
+ }
+
+ void InstanceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ Traversal::InstanceDeploymentDescription::traverse (o);
+ }
+
+ void InstanceDeploymentDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::InstanceDeploymentDescription::name (o);
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ node (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("node"), top_ ()));
+ Traversal::InstanceDeploymentDescription::node (o);
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ source (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("source"), top_ ()));
+ Traversal::InstanceDeploymentDescription::source (o);
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ implementation (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("implementation"), top_ ()));
+ Traversal::InstanceDeploymentDescription::implementation (o);
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void InstanceDeploymentDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployedResource"), top_ ()));
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_next (Type const& o)
+ {
+ deployedResource_post (o);
+ deployedResource_pre (o);
+ }
+
+ void InstanceDeploymentDescription::
+ deployedResource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ deployedSharedResource (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployedSharedResource"), top_ ()));
+ Traversal::InstanceDeploymentDescription::deployedSharedResource (o);
+ pop_ ();
+ }
+
+ void InstanceDeploymentDescription::
+ id (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("id"), ACE_TEXT ("http://www.omg.org/Deployment"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::InstanceDeploymentDescription::id (o);
+ attr_ (0);
+ }
+
+ // CCMComponentPortKind
+ //
+ //
+
+ CCMComponentPortKind::
+ CCMComponentPortKind (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ CCMComponentPortKind::
+ CCMComponentPortKind ()
+ {
+ }
+
+ void CCMComponentPortKind::
+ traverse (Type const& o)
+ {
+ ::std::basic_string< ACE_TCHAR > s;
+
+ if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::Facet) s = ACE_TEXT ("Facet");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::SimplexReceptacle) s = ACE_TEXT ("SimplexReceptacle");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::MultiplexReceptacle) s = ACE_TEXT ("MultiplexReceptacle");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::EventEmitter) s = ACE_TEXT ("EventEmitter");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::EventPublisher) s = ACE_TEXT ("EventPublisher");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::EventConsumer) s = ACE_TEXT ("EventConsumer");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::ExtendedPort) s = ACE_TEXT ("ExtendedPort");
+ else if (o == ::CIAO::Config_Handlers::CCMComponentPortKind::MirrorPort) s = ACE_TEXT ("MirrorPort");
+ else
+ {
+ }
+
+ if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ())
+ {
+ a->value (s);
+ }
+
+ else
+ {
+ top_().value (s);
+ }
+ }
+
+ // ComponentPortDescription
+ //
+ //
+
+ ComponentPortDescription::
+ ComponentPortDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentPortDescription::
+ ComponentPortDescription ()
+ {
+ }
+
+ void ComponentPortDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentPortDescription::traverse (o);
+ }
+
+ void ComponentPortDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::ComponentPortDescription::name (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ specificType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("specificType"), top_ ()));
+ Traversal::ComponentPortDescription::specificType (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ supportedType_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("supportedType"), top_ ()));
+ }
+
+ void ComponentPortDescription::
+ supportedType_next (Type const& o)
+ {
+ supportedType_post (o);
+ supportedType_pre (o);
+ }
+
+ void ComponentPortDescription::
+ supportedType_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ provider (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("provider"), top_ ()));
+ Traversal::ComponentPortDescription::provider (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ exclusiveProvider (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("exclusiveProvider"), top_ ()));
+ Traversal::ComponentPortDescription::exclusiveProvider (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ exclusiveUser (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("exclusiveUser"), top_ ()));
+ Traversal::ComponentPortDescription::exclusiveUser (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ optional (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("optional"), top_ ()));
+ Traversal::ComponentPortDescription::optional (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ kind (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("kind"), top_ ()));
+ Traversal::ComponentPortDescription::kind (o);
+ pop_ ();
+ }
+
+ void ComponentPortDescription::
+ templateParam_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("templateParam"), top_ ()));
+ }
+
+ void ComponentPortDescription::
+ templateParam_next (Type const& o)
+ {
+ templateParam_post (o);
+ templateParam_pre (o);
+ }
+
+ void ComponentPortDescription::
+ templateParam_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ComponentPropertyDescription
+ //
+ //
+
+ ComponentPropertyDescription::
+ ComponentPropertyDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentPropertyDescription::
+ ComponentPropertyDescription ()
+ {
+ }
+
+ void ComponentPropertyDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentPropertyDescription::traverse (o);
+ }
+
+ void ComponentPropertyDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::ComponentPropertyDescription::name (o);
+ pop_ ();
+ }
+
+ void ComponentPropertyDescription::
+ type (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("type"), top_ ()));
+ Traversal::ComponentPropertyDescription::type (o);
+ pop_ ();
+ }
+
+ // ComponentExternalPortEndpoint
+ //
+ //
+
+ ComponentExternalPortEndpoint::
+ ComponentExternalPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentExternalPortEndpoint::
+ ComponentExternalPortEndpoint ()
+ {
+ }
+
+ void ComponentExternalPortEndpoint::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentExternalPortEndpoint::traverse (o);
+ }
+
+ void ComponentExternalPortEndpoint::
+ portName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("portName"), top_ ()));
+ Traversal::ComponentExternalPortEndpoint::portName (o);
+ pop_ ();
+ }
+
+ // PlanSubcomponentPortEndpoint
+ //
+ //
+
+ PlanSubcomponentPortEndpoint::
+ PlanSubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PlanSubcomponentPortEndpoint::
+ PlanSubcomponentPortEndpoint ()
+ {
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ traverse (Type const& o)
+ {
+ Traversal::PlanSubcomponentPortEndpoint::traverse (o);
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ portName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("portName"), top_ ()));
+ Traversal::PlanSubcomponentPortEndpoint::portName (o);
+ pop_ ();
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ provider (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("provider"), top_ ()));
+ Traversal::PlanSubcomponentPortEndpoint::provider (o);
+ pop_ ();
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ kind (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("kind"), top_ ()));
+ Traversal::PlanSubcomponentPortEndpoint::kind (o);
+ pop_ ();
+ }
+
+ void PlanSubcomponentPortEndpoint::
+ instance (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("instance"), top_ ()));
+ Traversal::PlanSubcomponentPortEndpoint::instance (o);
+ pop_ ();
+ }
+
+ // ExternalReferenceEndpoint
+ //
+ //
+
+ ExternalReferenceEndpoint::
+ ExternalReferenceEndpoint (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ExternalReferenceEndpoint::
+ ExternalReferenceEndpoint ()
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ traverse (Type const& o)
+ {
+ Traversal::ExternalReferenceEndpoint::traverse (o);
+ }
+
+ void ExternalReferenceEndpoint::
+ location (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("location"), top_ ()));
+ Traversal::ExternalReferenceEndpoint::location (o);
+ pop_ ();
+ }
+
+ void ExternalReferenceEndpoint::
+ provider (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("provider"), top_ ()));
+ Traversal::ExternalReferenceEndpoint::provider (o);
+ pop_ ();
+ }
+
+ void ExternalReferenceEndpoint::
+ portName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("portName"), top_ ()));
+ Traversal::ExternalReferenceEndpoint::portName (o);
+ pop_ ();
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("supportedType"), top_ ()));
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_next (Type const& o)
+ {
+ supportedType_post (o);
+ supportedType_pre (o);
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ConnectionResourceDeploymentDescription
+ //
+ //
+
+ ConnectionResourceDeploymentDescription::
+ ConnectionResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ConnectionResourceDeploymentDescription::
+ ConnectionResourceDeploymentDescription ()
+ {
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ConnectionResourceDeploymentDescription::traverse (o);
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ targetName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("targetName"), top_ ()));
+ Traversal::ConnectionResourceDeploymentDescription::targetName (o);
+ pop_ ();
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ requirementName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requirementName"), top_ ()));
+ Traversal::ConnectionResourceDeploymentDescription::requirementName (o);
+ pop_ ();
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ resourceName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceName"), top_ ()));
+ Traversal::ConnectionResourceDeploymentDescription::resourceName (o);
+ pop_ ();
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void ConnectionResourceDeploymentDescription::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // PlanConnectionDescription
+ //
+ //
+
+ PlanConnectionDescription::
+ PlanConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PlanConnectionDescription::
+ PlanConnectionDescription ()
+ {
+ }
+
+ void PlanConnectionDescription::
+ traverse (Type const& o)
+ {
+ Traversal::PlanConnectionDescription::traverse (o);
+ }
+
+ void PlanConnectionDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::PlanConnectionDescription::name (o);
+ pop_ ();
+ }
+
+ void PlanConnectionDescription::
+ source (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("source"), top_ ()));
+ Traversal::PlanConnectionDescription::source (o);
+ pop_ ();
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployRequirement"), top_ ()));
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_next (Type const& o)
+ {
+ deployRequirement_post (o);
+ deployRequirement_pre (o);
+ }
+
+ void PlanConnectionDescription::
+ deployRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalEndpoint"), top_ ()));
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_next (Type const& o)
+ {
+ externalEndpoint_post (o);
+ externalEndpoint_pre (o);
+ }
+
+ void PlanConnectionDescription::
+ externalEndpoint_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("internalEndpoint"), top_ ()));
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_next (Type const& o)
+ {
+ internalEndpoint_post (o);
+ internalEndpoint_pre (o);
+ }
+
+ void PlanConnectionDescription::
+ internalEndpoint_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PlanConnectionDescription::
+ externalReference_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalReference"), top_ ()));
+ }
+
+ void PlanConnectionDescription::
+ externalReference_next (Type const& o)
+ {
+ externalReference_post (o);
+ externalReference_pre (o);
+ }
+
+ void PlanConnectionDescription::
+ externalReference_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployedResource"), top_ ()));
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_next (Type const& o)
+ {
+ deployedResource_post (o);
+ deployedResource_pre (o);
+ }
+
+ void PlanConnectionDescription::
+ deployedResource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ImplementationDependency
+ //
+ //
+
+ ImplementationDependency::
+ ImplementationDependency (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ImplementationDependency::
+ ImplementationDependency ()
+ {
+ }
+
+ void ImplementationDependency::
+ traverse (Type const& o)
+ {
+ Traversal::ImplementationDependency::traverse (o);
+ }
+
+ void ImplementationDependency::
+ requiredType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requiredType"), top_ ()));
+ Traversal::ImplementationDependency::requiredType (o);
+ pop_ ();
+ }
+
+ // Capability
+ //
+ //
+
+ Capability::
+ Capability (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Capability::
+ Capability ()
+ {
+ }
+
+ void Capability::
+ traverse (Type const& o)
+ {
+ Traversal::Capability::traverse (o);
+ }
+
+ void Capability::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Capability::name (o);
+ pop_ ();
+ }
+
+ void Capability::
+ resourceType_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceType"), top_ ()));
+ }
+
+ void Capability::
+ resourceType_next (Type const& o)
+ {
+ resourceType_post (o);
+ resourceType_pre (o);
+ }
+
+ void Capability::
+ resourceType_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Capability::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void Capability::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void Capability::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ImplementationRequirement
+ //
+ //
+
+ ImplementationRequirement::
+ ImplementationRequirement (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ImplementationRequirement::
+ ImplementationRequirement ()
+ {
+ }
+
+ void ImplementationRequirement::
+ traverse (Type const& o)
+ {
+ Traversal::ImplementationRequirement::traverse (o);
+ }
+
+ void ImplementationRequirement::
+ resourceUsage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceUsage"), top_ ()));
+ Traversal::ImplementationRequirement::resourceUsage (o);
+ pop_ ();
+ }
+
+ void ImplementationRequirement::
+ resourcePort (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourcePort"), top_ ()));
+ Traversal::ImplementationRequirement::resourcePort (o);
+ pop_ ();
+ }
+
+ void ImplementationRequirement::
+ componentPort (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("componentPort"), top_ ()));
+ Traversal::ImplementationRequirement::componentPort (o);
+ pop_ ();
+ }
+
+ void ImplementationRequirement::
+ resourceType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceType"), top_ ()));
+ Traversal::ImplementationRequirement::resourceType (o);
+ pop_ ();
+ }
+
+ void ImplementationRequirement::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::ImplementationRequirement::name (o);
+ pop_ ();
+ }
+
+ void ImplementationRequirement::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void ImplementationRequirement::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void ImplementationRequirement::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // SubcomponentPortEndpoint
+ //
+ //
+
+ SubcomponentPortEndpoint::
+ SubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SubcomponentPortEndpoint::
+ SubcomponentPortEndpoint ()
+ {
+ }
+
+ void SubcomponentPortEndpoint::
+ traverse (Type const& o)
+ {
+ Traversal::SubcomponentPortEndpoint::traverse (o);
+ }
+
+ void SubcomponentPortEndpoint::
+ portName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("portName"), top_ ()));
+ Traversal::SubcomponentPortEndpoint::portName (o);
+ pop_ ();
+ }
+
+ void SubcomponentPortEndpoint::
+ instance (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("instance"), top_ ()));
+ Traversal::SubcomponentPortEndpoint::instance (o);
+ pop_ ();
+ }
+
+ // AssemblyConnectionDescription
+ //
+ //
+
+ AssemblyConnectionDescription::
+ AssemblyConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ AssemblyConnectionDescription::
+ AssemblyConnectionDescription ()
+ {
+ }
+
+ void AssemblyConnectionDescription::
+ traverse (Type const& o)
+ {
+ Traversal::AssemblyConnectionDescription::traverse (o);
+ }
+
+ void AssemblyConnectionDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::AssemblyConnectionDescription::name (o);
+ pop_ ();
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployRequirement"), top_ ()));
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_next (Type const& o)
+ {
+ deployRequirement_post (o);
+ deployRequirement_pre (o);
+ }
+
+ void AssemblyConnectionDescription::
+ deployRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("internalEndpoint"), top_ ()));
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_next (Type const& o)
+ {
+ internalEndpoint_post (o);
+ internalEndpoint_pre (o);
+ }
+
+ void AssemblyConnectionDescription::
+ internalEndpoint_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalEndpoint"), top_ ()));
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_next (Type const& o)
+ {
+ externalEndpoint_post (o);
+ externalEndpoint_pre (o);
+ }
+
+ void AssemblyConnectionDescription::
+ externalEndpoint_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalReference"), top_ ()));
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_next (Type const& o)
+ {
+ externalReference_post (o);
+ externalReference_pre (o);
+ }
+
+ void AssemblyConnectionDescription::
+ externalReference_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // PlanLocalityKind
+ //
+ //
+
+ PlanLocalityKind::
+ PlanLocalityKind (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PlanLocalityKind::
+ PlanLocalityKind ()
+ {
+ }
+
+ void PlanLocalityKind::
+ traverse (Type const& o)
+ {
+ ::std::basic_string< ACE_TCHAR > s;
+
+ if (o == ::CIAO::Config_Handlers::PlanLocalityKind::SameProcess) s = ACE_TEXT ("SameProcess");
+ else if (o == ::CIAO::Config_Handlers::PlanLocalityKind::DifferentProcess) s = ACE_TEXT ("DifferentProcess");
+ else if (o == ::CIAO::Config_Handlers::PlanLocalityKind::NoConstraint) s = ACE_TEXT ("NoConstraint");
+ else
+ {
+ }
+
+ if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ())
+ {
+ a->value (s);
+ }
+
+ else
+ {
+ top_().value (s);
+ }
+ }
+
+ // PlanLocality
+ //
+ //
+
+ PlanLocality::
+ PlanLocality (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PlanLocality::
+ PlanLocality ()
+ {
+ }
+
+ void PlanLocality::
+ traverse (Type const& o)
+ {
+ Traversal::PlanLocality::traverse (o);
+ }
+
+ void PlanLocality::
+ constraint (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("constraint"), top_ ()));
+ Traversal::PlanLocality::constraint (o);
+ pop_ ();
+ }
+
+ void PlanLocality::
+ constrainedInstance_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("constrainedInstance"), top_ ()));
+ }
+
+ void PlanLocality::
+ constrainedInstance_next (Type const& o)
+ {
+ constrainedInstance_post (o);
+ constrainedInstance_pre (o);
+ }
+
+ void PlanLocality::
+ constrainedInstance_post (Type const&)
+ {
+ pop_ ();
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.hpp b/modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
new file mode 100644
index 00000000000..b393929cf10
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
@@ -0,0 +1,8561 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef BASIC_DEPLOYMENT_DATA_HPP
+#define BASIC_DEPLOYMENT_DATA_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class IdRef;
+ class TCKind;
+ class DataType;
+ class DataValue;
+ class AliasType;
+ class EnumType;
+ class StructType;
+ class StructMemberType;
+ class ValueType;
+ class ValueMemberType;
+ class NamedValue;
+ class SequenceType;
+ class Any;
+ class Property;
+ class SatisfierPropertyKind;
+ class SatisfierProperty;
+ class Resource;
+ class Requirement;
+ class ResourceDeploymentDescription;
+ class ArtifactDeploymentDescription;
+ class MonolithicDeploymentDescription;
+ class ResourceUsageKind;
+ class InstanceResourceDeploymentDescription;
+ class InstanceDeploymentDescription;
+ class CCMComponentPortKind;
+ class ComponentPortDescription;
+ class ComponentPropertyDescription;
+ class ComponentExternalPortEndpoint;
+ class PlanSubcomponentPortEndpoint;
+ class ExternalReferenceEndpoint;
+ class ConnectionResourceDeploymentDescription;
+ class PlanConnectionDescription;
+ class ImplementationDependency;
+ class Capability;
+ class ImplementationRequirement;
+ class SubcomponentPortEndpoint;
+ class AssemblyConnectionDescription;
+ class PlanLocalityKind;
+ class PlanLocality;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "XMI.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export IdRef : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < IdRef, ACE_Null_Mutex > _ptr;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ // idref
+ //
+ public:
+ bool idref_p () const;
+ ::XMLSchema::IDREF< ACE_TCHAR > const& idref () const;
+ ::XMLSchema::IDREF< ACE_TCHAR >& idref ();
+ void idref (::XMLSchema::IDREF< ACE_TCHAR > const& );
+ ::XSCRT::Type* idref_ptr ();
+
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > idref_;
+
+ public:
+ IdRef ();
+
+ IdRef (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ IdRef (IdRef const& s);
+
+ IdRef&
+ operator= (IdRef const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export TCKind : public ::XSCRT::Type
+ {
+ public:
+ TCKind (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ TCKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
+
+ static TCKind const tk_null;
+ static TCKind const tk_void;
+ static TCKind const tk_short;
+ static TCKind const tk_long;
+ static TCKind const tk_ushort;
+ static TCKind const tk_ulong;
+ static TCKind const tk_float;
+ static TCKind const tk_double;
+ static TCKind const tk_boolean;
+ static TCKind const tk_char;
+ static TCKind const tk_octet;
+ static TCKind const tk_any;
+ static TCKind const tk_TypeCode;
+ static TCKind const tk_Principal;
+ static TCKind const tk_objref;
+ static TCKind const tk_struct;
+ static TCKind const tk_union;
+ static TCKind const tk_enum;
+ static TCKind const tk_string;
+ static TCKind const tk_sequence;
+ static TCKind const tk_array;
+ static TCKind const tk_alias;
+ static TCKind const tk_except;
+ static TCKind const tk_longlong;
+ static TCKind const tk_ulonglong;
+ static TCKind const tk_longdouble;
+ static TCKind const tk_wchar;
+ static TCKind const tk_wstring;
+ static TCKind const tk_fixed;
+ static TCKind const tk_value;
+ static TCKind const tk_value_box;
+ static TCKind const tk_native;
+ static TCKind const tk_abstract_interface;
+ static TCKind const tk_local_interface;
+ static TCKind const tk_component;
+ static TCKind const tk_home;
+ static TCKind const tk_event;
+
+ enum Value
+ {
+ tk_null_l, tk_void_l, tk_short_l, tk_long_l, tk_ushort_l, tk_ulong_l, tk_float_l, tk_double_l, tk_boolean_l, tk_char_l, tk_octet_l, tk_any_l, tk_TypeCode_l, tk_Principal_l, tk_objref_l, tk_struct_l, tk_union_l, tk_enum_l, tk_string_l, tk_sequence_l, tk_array_l, tk_alias_l, tk_except_l, tk_longlong_l, tk_ulonglong_l, tk_longdouble_l, tk_wchar_l, tk_wstring_l, tk_fixed_l, tk_value_l, tk_value_box_l, tk_native_l, tk_abstract_interface_l, tk_local_interface_l, tk_component_l, tk_home_l, tk_event_l
+ };
+
+
+ Value
+ integral () const;
+
+ friend bool XSC_XML_Handlers_Export
+ operator== (TCKind const& a, TCKind const& b);
+
+ friend bool XSC_XML_Handlers_Export
+ operator!= (TCKind const& a, TCKind const& b);
+
+ private:
+ TCKind (Value v);
+
+ Value v_;
+ };
+
+ bool XSC_XML_Handlers_Export operator== (TCKind const &a, TCKind const &b);
+
+ bool XSC_XML_Handlers_Export operator!= (TCKind const &a, TCKind const &b);
+
+
+ class XSC_XML_Handlers_Export DataType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < DataType, ACE_Null_Mutex > _ptr;
+
+ // kind
+ //
+ public:
+ ::CIAO::Config_Handlers::TCKind const& kind () const;
+ void kind (::CIAO::Config_Handlers::TCKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::TCKind > kind_;
+
+ // enum
+ //
+ public:
+ bool enum_p () const;
+ ::CIAO::Config_Handlers::EnumType const& enum_ () const;
+ void enum_ (::CIAO::Config_Handlers::EnumType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::EnumType > enum__;
+
+ // struct
+ //
+ public:
+ bool struct_p () const;
+ ::CIAO::Config_Handlers::StructType const& struct_ () const;
+ void struct_ (::CIAO::Config_Handlers::StructType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::StructType > struct__;
+
+ // value
+ //
+ public:
+ bool value_p () const;
+ ::CIAO::Config_Handlers::ValueType const& value () const;
+ void value (::CIAO::Config_Handlers::ValueType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ValueType > value_;
+
+ // sequence
+ //
+ public:
+ bool sequence_p () const;
+ ::CIAO::Config_Handlers::SequenceType const& sequence () const;
+ void sequence (::CIAO::Config_Handlers::SequenceType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::SequenceType > sequence_;
+
+ // alias
+ //
+ public:
+ bool alias_p () const;
+ ::CIAO::Config_Handlers::AliasType const& alias () const;
+ void alias (::CIAO::Config_Handlers::AliasType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::AliasType > alias_;
+
+ // id
+ //
+ public:
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
+
+ public:
+ DataType (::CIAO::Config_Handlers::TCKind const& kind__);
+
+ DataType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ DataType (DataType const& s);
+
+ DataType&
+ operator= (DataType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export DataValue : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < DataValue, ACE_Null_Mutex > _ptr;
+
+ // short
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > >::iterator short_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > >::const_iterator short_const_iterator;
+ short_iterator begin_short ();
+ short_iterator end_short ();
+ short_const_iterator begin_short () const;
+ short_const_iterator end_short () const;
+ void add_short ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > const& );
+ XSCRT::Type* short_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_short (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > > short__;
+
+ // long
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > >::iterator long_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > >::const_iterator long_const_iterator;
+ long_iterator begin_long ();
+ long_iterator end_long ();
+ long_const_iterator begin_long () const;
+ long_const_iterator end_long () const;
+ void add_long ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > const& );
+ XSCRT::Type* long_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_long (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > > long__;
+
+ // ushort
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > >::iterator ushort_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > >::const_iterator ushort_const_iterator;
+ ushort_iterator begin_ushort ();
+ ushort_iterator end_ushort ();
+ ushort_const_iterator begin_ushort () const;
+ ushort_const_iterator end_ushort () const;
+ void add_ushort ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > const& );
+ XSCRT::Type* ushort_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_ushort (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > > ushort_;
+
+ // ulong
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > >::iterator ulong_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > >::const_iterator ulong_const_iterator;
+ ulong_iterator begin_ulong ();
+ ulong_iterator end_ulong ();
+ ulong_const_iterator begin_ulong () const;
+ ulong_const_iterator end_ulong () const;
+ void add_ulong ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > const& );
+ XSCRT::Type* ulong_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_ulong (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > > ulong_;
+
+ // float
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > >::iterator float_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > >::const_iterator float_const_iterator;
+ float_iterator begin_float ();
+ float_iterator end_float ();
+ float_const_iterator begin_float () const;
+ float_const_iterator end_float () const;
+ void add_float ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > const& );
+ XSCRT::Type* float_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_float (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > > float__;
+
+ // double
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::iterator double_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::const_iterator double_const_iterator;
+ double_iterator begin_double ();
+ double_iterator end_double ();
+ double_const_iterator begin_double () const;
+ double_const_iterator end_double () const;
+ void add_double ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& );
+ XSCRT::Type* double_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_double (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > > double__;
+
+ // boolean
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > >::iterator boolean_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > >::const_iterator boolean_const_iterator;
+ boolean_iterator begin_boolean ();
+ boolean_iterator end_boolean ();
+ boolean_const_iterator begin_boolean () const;
+ boolean_const_iterator end_boolean () const;
+ void add_boolean ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > const& );
+ XSCRT::Type* boolean_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_boolean (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > > boolean_;
+
+ // octet
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > >::iterator octet_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > >::const_iterator octet_const_iterator;
+ octet_iterator begin_octet ();
+ octet_iterator end_octet ();
+ octet_const_iterator begin_octet () const;
+ octet_const_iterator end_octet () const;
+ void add_octet ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > const& );
+ XSCRT::Type* octet_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_octet (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > > octet_;
+
+ // enum
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator enum_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator enum_const_iterator;
+ enum_iterator begin_enum ();
+ enum_iterator end_enum ();
+ enum_const_iterator begin_enum () const;
+ enum_const_iterator end_enum () const;
+ void add_enum ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* enum_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_enum (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > enum__;
+
+ // string
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator string_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator string_const_iterator;
+ string_iterator begin_string ();
+ string_iterator end_string ();
+ string_const_iterator begin_string () const;
+ string_const_iterator end_string () const;
+ void add_string ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* string_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_string (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > string_;
+
+ // longlong
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > >::iterator longlong_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > >::const_iterator longlong_const_iterator;
+ longlong_iterator begin_longlong ();
+ longlong_iterator end_longlong ();
+ longlong_const_iterator begin_longlong () const;
+ longlong_const_iterator end_longlong () const;
+ void add_longlong ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > const& );
+ XSCRT::Type* longlong_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_longlong (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > > longlong_;
+
+ // ulonglong
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > >::iterator ulonglong_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > >::const_iterator ulonglong_const_iterator;
+ ulonglong_iterator begin_ulonglong ();
+ ulonglong_iterator end_ulonglong ();
+ ulonglong_const_iterator begin_ulonglong () const;
+ ulonglong_const_iterator end_ulonglong () const;
+ void add_ulonglong ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > const& );
+ XSCRT::Type* ulonglong_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_ulonglong (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > > ulonglong_;
+
+ // longdouble
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::iterator longdouble_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::const_iterator longdouble_const_iterator;
+ longdouble_iterator begin_longdouble ();
+ longdouble_iterator end_longdouble ();
+ longdouble_const_iterator begin_longdouble () const;
+ longdouble_const_iterator end_longdouble () const;
+ void add_longdouble ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& );
+ XSCRT::Type* longdouble_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_longdouble (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > > longdouble_;
+
+ // element
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > >::iterator element_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > >::const_iterator element_const_iterator;
+ element_iterator begin_element ();
+ element_iterator end_element ();
+ element_const_iterator begin_element () const;
+ element_const_iterator end_element () const;
+ void add_element ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > const& );
+ XSCRT::Type* element_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_element (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > > element_;
+
+ // member
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > >::const_iterator member_const_iterator;
+ member_iterator begin_member ();
+ member_iterator end_member ();
+ member_const_iterator begin_member () const;
+ member_const_iterator end_member () const;
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > const& );
+ XSCRT::Type* member_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_member (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > > member_;
+
+ public:
+ DataValue ();
+
+ DataValue (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ DataValue (DataValue const& s);
+
+ DataValue&
+ operator= (DataValue const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export AliasType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < AliasType, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // typeId
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& typeId () const;
+ void typeId (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
+
+ // elementType
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& elementType () const;
+ void elementType (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > elementType_;
+
+ public:
+ AliasType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::CIAO::Config_Handlers::DataType const& elementType__);
+
+ AliasType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ AliasType (AliasType const& s);
+
+ AliasType&
+ operator= (AliasType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export EnumType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < EnumType, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // typeId
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& typeId () const;
+ void typeId (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
+
+ // member
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator member_const_iterator;
+ member_iterator begin_member ();
+ member_iterator end_member ();
+ member_const_iterator begin_member () const;
+ member_const_iterator end_member () const;
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* member_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_member (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > member_;
+
+ public:
+ EnumType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& member__);
+
+ EnumType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ EnumType (EnumType const& s);
+
+ EnumType&
+ operator= (EnumType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export StructType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < StructType, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // typeId
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& typeId () const;
+ void typeId (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
+
+ // member
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > >::const_iterator member_const_iterator;
+ member_iterator begin_member ();
+ member_iterator end_member ();
+ member_const_iterator begin_member () const;
+ member_const_iterator end_member () const;
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > const& );
+ XSCRT::Type* member_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_member (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > > member_;
+
+ public:
+ StructType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__);
+
+ StructType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ StructType (StructType const& s);
+
+ StructType&
+ operator= (StructType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export StructMemberType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < StructMemberType, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // type
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& type () const;
+ void type (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > type_;
+
+ public:
+ StructMemberType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::DataType const& type__);
+
+ StructMemberType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ StructMemberType (StructMemberType const& s);
+
+ StructMemberType&
+ operator= (StructMemberType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ValueType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ValueType, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // typeId
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& typeId () const;
+ void typeId (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
+
+ // modifier
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& modifier () const;
+ void modifier (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > modifier_;
+
+ // baseType
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& baseType () const;
+ void baseType (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > baseType_;
+
+ // member
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > >::const_iterator member_const_iterator;
+ member_iterator begin_member ();
+ member_iterator end_member ();
+ member_const_iterator begin_member () const;
+ member_const_iterator end_member () const;
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > const& );
+ XSCRT::Type* member_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_member (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > > member_;
+
+ public:
+ ValueType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::XMLSchema::string< ACE_TCHAR > const& modifier__,
+ ::CIAO::Config_Handlers::DataType const& baseType__);
+
+ ValueType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ValueType (ValueType const& s);
+
+ ValueType&
+ operator= (ValueType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ValueMemberType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ValueMemberType, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // visibility
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& visibility () const;
+ void visibility (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > visibility_;
+
+ // type
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& type () const;
+ void type (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > type_;
+
+ public:
+ ValueMemberType (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& visibility__,
+ ::CIAO::Config_Handlers::DataType const& type__);
+
+ ValueMemberType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ValueMemberType (ValueMemberType const& s);
+
+ ValueMemberType&
+ operator= (ValueMemberType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export NamedValue : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < NamedValue, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // value
+ //
+ public:
+ ::CIAO::Config_Handlers::DataValue const& value () const;
+ void value (::CIAO::Config_Handlers::DataValue const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataValue > value_;
+
+ public:
+ NamedValue (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::DataValue const& value__);
+
+ NamedValue (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ NamedValue (NamedValue const& s);
+
+ NamedValue&
+ operator= (NamedValue const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export SequenceType : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SequenceType, ACE_Null_Mutex > _ptr;
+
+ // bound
+ //
+ public:
+ bool bound_p () const;
+ ::XMLSchema::unsignedInt const& bound () const;
+ void bound (::XMLSchema::unsignedInt const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::unsignedInt > bound_;
+
+ // elementType
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& elementType () const;
+ void elementType (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > elementType_;
+
+ public:
+ SequenceType (::CIAO::Config_Handlers::DataType const& elementType__);
+
+ SequenceType (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SequenceType (SequenceType const& s);
+
+ SequenceType&
+ operator= (SequenceType const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Any : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Any, ACE_Null_Mutex > _ptr;
+
+ // type
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& type () const;
+ void type (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > type_;
+
+ // value
+ //
+ public:
+ ::CIAO::Config_Handlers::DataValue const& value () const;
+ void value (::CIAO::Config_Handlers::DataValue const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataValue > value_;
+
+ public:
+ Any (::CIAO::Config_Handlers::DataType const& type__,
+ ::CIAO::Config_Handlers::DataValue const& value__);
+
+ Any (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Any (Any const& s);
+
+ Any&
+ operator= (Any const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Property : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Property, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // value
+ //
+ public:
+ ::CIAO::Config_Handlers::Any const& value () const;
+ void value (::CIAO::Config_Handlers::Any const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::Any > value_;
+
+ public:
+ Property (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::Any const& value__);
+
+ Property (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Property (Property const& s);
+
+ Property&
+ operator= (Property const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export SatisfierPropertyKind : public ::XSCRT::Type
+ {
+ public:
+ SatisfierPropertyKind (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SatisfierPropertyKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
+
+ static SatisfierPropertyKind const Quantity;
+ static SatisfierPropertyKind const Capacity;
+ static SatisfierPropertyKind const Minimum;
+ static SatisfierPropertyKind const Maximum;
+ static SatisfierPropertyKind const Attribute;
+ static SatisfierPropertyKind const Selection;
+
+ enum Value
+ {
+ Quantity_l, Capacity_l, Minimum_l, Maximum_l, Attribute_l, Selection_l
+ };
+
+
+ Value
+ integral () const;
+
+ friend bool XSC_XML_Handlers_Export
+ operator== (SatisfierPropertyKind const& a, SatisfierPropertyKind const& b);
+
+ friend bool XSC_XML_Handlers_Export
+ operator!= (SatisfierPropertyKind const& a, SatisfierPropertyKind const& b);
+
+ private:
+ SatisfierPropertyKind (Value v);
+
+ Value v_;
+ };
+
+ bool XSC_XML_Handlers_Export operator== (SatisfierPropertyKind const &a, SatisfierPropertyKind const &b);
+
+ bool XSC_XML_Handlers_Export operator!= (SatisfierPropertyKind const &a, SatisfierPropertyKind const &b);
+
+
+ class XSC_XML_Handlers_Export SatisfierProperty : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SatisfierProperty, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // kind
+ //
+ public:
+ ::CIAO::Config_Handlers::SatisfierPropertyKind const& kind () const;
+ void kind (::CIAO::Config_Handlers::SatisfierPropertyKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::SatisfierPropertyKind > kind_;
+
+ // dynamic
+ //
+ public:
+ ::XMLSchema::boolean const& dynamic () const;
+ void dynamic (::XMLSchema::boolean const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::boolean > dynamic_;
+
+ // value
+ //
+ public:
+ ::CIAO::Config_Handlers::Any const& value () const;
+ void value (::CIAO::Config_Handlers::Any const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::Any > value_;
+
+ public:
+ SatisfierProperty (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::SatisfierPropertyKind const& kind__,
+ ::XMLSchema::boolean const& dynamic__,
+ ::CIAO::Config_Handlers::Any const& value__);
+
+ SatisfierProperty (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SatisfierProperty (SatisfierProperty const& s);
+
+ SatisfierProperty&
+ operator= (SatisfierProperty const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Resource : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Resource, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // resourceType
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator resourceType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator resourceType_const_iterator;
+ resourceType_iterator begin_resourceType ();
+ resourceType_iterator end_resourceType ();
+ resourceType_const_iterator begin_resourceType () const;
+ resourceType_const_iterator end_resourceType () const;
+ void add_resourceType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* resourceType_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_resourceType (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > resourceType_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > > property_;
+
+ public:
+ Resource (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& resourceType__);
+
+ Resource (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Resource (Resource const& s);
+
+ Resource&
+ operator= (Resource const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Requirement : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Requirement, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // resourceType
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType () const;
+ void resourceType (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
+
+ public:
+ Requirement (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType__);
+
+ Requirement (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Requirement (Requirement const& s);
+
+ Requirement&
+ operator= (Requirement const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ResourceDeploymentDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ResourceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
+ // requirementName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName () const;
+ void requirementName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requirementName_;
+
+ // resourceName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName () const;
+ void resourceName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceName_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
+
+ public:
+ ResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& requirementName__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName__);
+
+ ResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ResourceDeploymentDescription (ResourceDeploymentDescription const& s);
+
+ ResourceDeploymentDescription&
+ operator= (ResourceDeploymentDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ArtifactDeploymentDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ArtifactDeploymentDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // source
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator source_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator source_const_iterator;
+ source_iterator begin_source ();
+ source_iterator end_source ();
+ source_const_iterator begin_source () const;
+ source_const_iterator end_source () const;
+ void add_source ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* source_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_source (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > source_;
+
+ // node
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& node () const;
+ void node (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_;
+
+ // location
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator location_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator location_const_iterator;
+ location_iterator begin_location ();
+ location_iterator end_location ();
+ location_const_iterator begin_location () const;
+ location_const_iterator end_location () const;
+ void add_location ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* location_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_location (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > location_;
+
+ // execParameter
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator execParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator execParameter_const_iterator;
+ execParameter_iterator begin_execParameter ();
+ execParameter_iterator end_execParameter ();
+ execParameter_const_iterator begin_execParameter () const;
+ execParameter_const_iterator end_execParameter () const;
+ void add_execParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* execParameter_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_execParameter (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > execParameter_;
+
+ // deployRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
+ deployRequirement_iterator begin_deployRequirement ();
+ deployRequirement_iterator end_deployRequirement ();
+ deployRequirement_const_iterator begin_deployRequirement () const;
+ deployRequirement_const_iterator end_deployRequirement () const;
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
+
+ // deployedResource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > >::iterator deployedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > >::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 ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployedResource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployedResource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > > deployedResource_;
+
+ // id
+ //
+ public:
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
+
+ public:
+ ArtifactDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& node__);
+
+ ArtifactDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ArtifactDeploymentDescription (ArtifactDeploymentDescription const& s);
+
+ ArtifactDeploymentDescription&
+ operator= (ArtifactDeploymentDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export MonolithicDeploymentDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < MonolithicDeploymentDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // source
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator source_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator source_const_iterator;
+ source_iterator begin_source ();
+ source_iterator end_source ();
+ source_const_iterator begin_source () const;
+ source_const_iterator end_source () const;
+ void add_source ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* source_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_source (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > source_;
+
+ // artifact
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > >::iterator artifact_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > >::const_iterator artifact_const_iterator;
+ artifact_iterator begin_artifact ();
+ artifact_iterator end_artifact ();
+ artifact_const_iterator begin_artifact () const;
+ artifact_const_iterator end_artifact () const;
+ void add_artifact ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > const& );
+ XSCRT::Type* artifact_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_artifact (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > > artifact_;
+
+ // execParameter
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator execParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator execParameter_const_iterator;
+ execParameter_iterator begin_execParameter ();
+ execParameter_iterator end_execParameter ();
+ execParameter_const_iterator begin_execParameter () const;
+ execParameter_const_iterator end_execParameter () const;
+ void add_execParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* execParameter_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_execParameter (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > execParameter_;
+
+ // deployRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
+ deployRequirement_iterator begin_deployRequirement ();
+ deployRequirement_iterator end_deployRequirement ();
+ deployRequirement_const_iterator begin_deployRequirement () const;
+ deployRequirement_const_iterator end_deployRequirement () const;
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
+
+ // id
+ //
+ public:
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
+
+ public:
+ MonolithicDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ MonolithicDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ MonolithicDeploymentDescription (MonolithicDeploymentDescription const& s);
+
+ MonolithicDeploymentDescription&
+ operator= (MonolithicDeploymentDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ResourceUsageKind : public ::XSCRT::Type
+ {
+ public:
+ ResourceUsageKind (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ResourceUsageKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
+
+ static ResourceUsageKind const None;
+ static ResourceUsageKind const InstanceUsesResource;
+ static ResourceUsageKind const ResourceUsesInstance;
+ static ResourceUsageKind const PortUsesResource;
+ static ResourceUsageKind const ResourceUsesPort;
+
+ enum Value
+ {
+ None_l, InstanceUsesResource_l, ResourceUsesInstance_l, PortUsesResource_l, ResourceUsesPort_l
+ };
+
+
+ Value
+ integral () const;
+
+ friend bool XSC_XML_Handlers_Export
+ operator== (ResourceUsageKind const& a, ResourceUsageKind const& b);
+
+ friend bool XSC_XML_Handlers_Export
+ operator!= (ResourceUsageKind const& a, ResourceUsageKind const& b);
+
+ private:
+ ResourceUsageKind (Value v);
+
+ Value v_;
+ };
+
+ bool XSC_XML_Handlers_Export operator== (ResourceUsageKind const &a, ResourceUsageKind const &b);
+
+ bool XSC_XML_Handlers_Export operator!= (ResourceUsageKind const &a, ResourceUsageKind const &b);
+
+
+ class XSC_XML_Handlers_Export InstanceResourceDeploymentDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < InstanceResourceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
+ // resourceUsage
+ //
+ public:
+ ::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage () const;
+ void resourceUsage (::CIAO::Config_Handlers::ResourceUsageKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > resourceUsage_;
+
+ // requirementName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName () const;
+ void requirementName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requirementName_;
+
+ // resourceName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName () const;
+ void resourceName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceName_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
+
+ public:
+ InstanceResourceDeploymentDescription (::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage__,
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName__);
+
+ InstanceResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ InstanceResourceDeploymentDescription (InstanceResourceDeploymentDescription const& s);
+
+ InstanceResourceDeploymentDescription&
+ operator= (InstanceResourceDeploymentDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export InstanceDeploymentDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < InstanceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // node
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& node () const;
+ void node (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_;
+
+ // source
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& source () const;
+ void source (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > source_;
+
+ // implementation
+ //
+ public:
+ ::CIAO::Config_Handlers::IdRef const& implementation () const;
+ void implementation (::CIAO::Config_Handlers::IdRef const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > implementation_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // deployedResource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > >::iterator deployedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > >::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 ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployedResource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployedResource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > > deployedResource_;
+
+ // deployedSharedResource
+ //
+ public:
+ bool deployedSharedResource_p () const;
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& deployedSharedResource () const;
+ void deployedSharedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > deployedSharedResource_;
+
+ // id
+ //
+ public:
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
+
+ public:
+ InstanceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& node__,
+ ::XMLSchema::string< ACE_TCHAR > const& source__,
+ ::CIAO::Config_Handlers::IdRef const& implementation__);
+
+ InstanceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ InstanceDeploymentDescription (InstanceDeploymentDescription const& s);
+
+ InstanceDeploymentDescription&
+ operator= (InstanceDeploymentDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export CCMComponentPortKind : public ::XSCRT::Type
+ {
+ public:
+ CCMComponentPortKind (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ CCMComponentPortKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
+
+ static CCMComponentPortKind const Facet;
+ static CCMComponentPortKind const SimplexReceptacle;
+ static CCMComponentPortKind const MultiplexReceptacle;
+ static CCMComponentPortKind const EventEmitter;
+ static CCMComponentPortKind const EventPublisher;
+ static CCMComponentPortKind const EventConsumer;
+ static CCMComponentPortKind const ExtendedPort;
+ static CCMComponentPortKind const MirrorPort;
+
+ enum Value
+ {
+ Facet_l, SimplexReceptacle_l, MultiplexReceptacle_l, EventEmitter_l, EventPublisher_l, EventConsumer_l, ExtendedPort_l, MirrorPort_l
+ };
+
+
+ Value
+ integral () const;
+
+ friend bool XSC_XML_Handlers_Export
+ operator== (CCMComponentPortKind const& a, CCMComponentPortKind const& b);
+
+ friend bool XSC_XML_Handlers_Export
+ operator!= (CCMComponentPortKind const& a, CCMComponentPortKind const& b);
+
+ private:
+ CCMComponentPortKind (Value v);
+
+ Value v_;
+ };
+
+ bool XSC_XML_Handlers_Export operator== (CCMComponentPortKind const &a, CCMComponentPortKind const &b);
+
+ bool XSC_XML_Handlers_Export operator!= (CCMComponentPortKind const &a, CCMComponentPortKind const &b);
+
+
+ class XSC_XML_Handlers_Export ComponentPortDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPortDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // specificType
+ //
+ public:
+ bool specificType_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& specificType () const;
+ void specificType (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > specificType_;
+
+ // supportedType
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator supportedType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator supportedType_const_iterator;
+ supportedType_iterator begin_supportedType ();
+ supportedType_iterator end_supportedType ();
+ supportedType_const_iterator begin_supportedType () const;
+ supportedType_const_iterator end_supportedType () const;
+ void add_supportedType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* supportedType_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_supportedType (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > supportedType_;
+
+ // provider
+ //
+ public:
+ ::XMLSchema::boolean const& provider () const;
+ void provider (::XMLSchema::boolean const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::boolean > provider_;
+
+ // exclusiveProvider
+ //
+ public:
+ ::XMLSchema::boolean const& exclusiveProvider () const;
+ void exclusiveProvider (::XMLSchema::boolean const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::boolean > exclusiveProvider_;
+
+ // exclusiveUser
+ //
+ public:
+ ::XMLSchema::boolean const& exclusiveUser () const;
+ void exclusiveUser (::XMLSchema::boolean const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::boolean > exclusiveUser_;
+
+ // optional
+ //
+ public:
+ ::XMLSchema::boolean const& optional () const;
+ void optional (::XMLSchema::boolean const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::boolean > optional_;
+
+ // kind
+ //
+ public:
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& kind () const;
+ void kind (::CIAO::Config_Handlers::CCMComponentPortKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::CCMComponentPortKind > kind_;
+
+ // templateParam
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator templateParam_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator templateParam_const_iterator;
+ templateParam_iterator begin_templateParam ();
+ templateParam_iterator end_templateParam ();
+ templateParam_const_iterator begin_templateParam () const;
+ templateParam_const_iterator end_templateParam () const;
+ void add_templateParam ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* templateParam_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_templateParam (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > templateParam_;
+
+ public:
+ ComponentPortDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::boolean const& provider__,
+ ::XMLSchema::boolean const& exclusiveProvider__,
+ ::XMLSchema::boolean const& exclusiveUser__,
+ ::XMLSchema::boolean const& optional__,
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& kind__);
+
+ ComponentPortDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentPortDescription (ComponentPortDescription const& s);
+
+ ComponentPortDescription&
+ operator= (ComponentPortDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ComponentPropertyDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPropertyDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // type
+ //
+ public:
+ ::CIAO::Config_Handlers::DataType const& type () const;
+ void type (::CIAO::Config_Handlers::DataType const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::DataType > type_;
+
+ public:
+ ComponentPropertyDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::DataType const& type__);
+
+ ComponentPropertyDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentPropertyDescription (ComponentPropertyDescription const& s);
+
+ ComponentPropertyDescription&
+ operator= (ComponentPropertyDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ComponentExternalPortEndpoint : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentExternalPortEndpoint, ACE_Null_Mutex > _ptr;
+
+ // portName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& portName () const;
+ void portName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
+
+ public:
+ ComponentExternalPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__);
+
+ ComponentExternalPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentExternalPortEndpoint (ComponentExternalPortEndpoint const& s);
+
+ ComponentExternalPortEndpoint&
+ operator= (ComponentExternalPortEndpoint const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export PlanSubcomponentPortEndpoint : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanSubcomponentPortEndpoint, ACE_Null_Mutex > _ptr;
+
+ // portName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& portName () const;
+ void portName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
+
+ // provider
+ //
+ public:
+ bool provider_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& provider () const;
+ void provider (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > provider_;
+
+ // kind
+ //
+ public:
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& kind () const;
+ void kind (::CIAO::Config_Handlers::CCMComponentPortKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::CCMComponentPortKind > kind_;
+
+ // instance
+ //
+ public:
+ ::CIAO::Config_Handlers::IdRef const& instance () const;
+ void instance (::CIAO::Config_Handlers::IdRef const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > instance_;
+
+ public:
+ PlanSubcomponentPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__,
+ ::CIAO::Config_Handlers::CCMComponentPortKind const& kind__,
+ ::CIAO::Config_Handlers::IdRef const& instance__);
+
+ PlanSubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PlanSubcomponentPortEndpoint (PlanSubcomponentPortEndpoint const& s);
+
+ PlanSubcomponentPortEndpoint&
+ operator= (PlanSubcomponentPortEndpoint const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ExternalReferenceEndpoint : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ExternalReferenceEndpoint, ACE_Null_Mutex > _ptr;
+
+ // location
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& location () const;
+ void location (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > location_;
+
+ // provider
+ //
+ public:
+ ::XMLSchema::boolean const& provider () const;
+ void provider (::XMLSchema::boolean const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::boolean > provider_;
+
+ // portName
+ //
+ public:
+ bool portName_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& portName () const;
+ void portName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
+
+ // supportedType
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator supportedType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator supportedType_const_iterator;
+ supportedType_iterator begin_supportedType ();
+ supportedType_iterator end_supportedType ();
+ supportedType_const_iterator begin_supportedType () const;
+ supportedType_const_iterator end_supportedType () const;
+ void add_supportedType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* supportedType_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_supportedType (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > supportedType_;
+
+ public:
+ ExternalReferenceEndpoint (::XMLSchema::string< ACE_TCHAR > const& location__,
+ ::XMLSchema::boolean const& provider__);
+
+ ExternalReferenceEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ExternalReferenceEndpoint (ExternalReferenceEndpoint const& s);
+
+ ExternalReferenceEndpoint&
+ operator= (ExternalReferenceEndpoint const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ConnectionResourceDeploymentDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ConnectionResourceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
+ // targetName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& targetName () const;
+ void targetName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > targetName_;
+
+ // requirementName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName () const;
+ void requirementName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requirementName_;
+
+ // resourceName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName () const;
+ void resourceName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceName_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
+
+ public:
+ ConnectionResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& targetName__,
+ ::XMLSchema::string< ACE_TCHAR > const& requirementName__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceName__);
+
+ ConnectionResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ConnectionResourceDeploymentDescription (ConnectionResourceDeploymentDescription const& s);
+
+ ConnectionResourceDeploymentDescription&
+ operator= (ConnectionResourceDeploymentDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export PlanConnectionDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanConnectionDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // source
+ //
+ public:
+ bool source_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& source () const;
+ void source (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > source_;
+
+ // deployRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
+ deployRequirement_iterator begin_deployRequirement ();
+ deployRequirement_iterator end_deployRequirement ();
+ deployRequirement_const_iterator begin_deployRequirement () const;
+ deployRequirement_const_iterator end_deployRequirement () const;
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
+
+ // externalEndpoint
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::iterator externalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::const_iterator externalEndpoint_const_iterator;
+ externalEndpoint_iterator begin_externalEndpoint ();
+ externalEndpoint_iterator end_externalEndpoint ();
+ externalEndpoint_const_iterator begin_externalEndpoint () const;
+ externalEndpoint_const_iterator end_externalEndpoint () const;
+ void add_externalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& );
+ XSCRT::Type* externalEndpoint_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_externalEndpoint (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > > externalEndpoint_;
+
+ // internalEndpoint
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > >::iterator internalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > >::const_iterator internalEndpoint_const_iterator;
+ internalEndpoint_iterator begin_internalEndpoint ();
+ internalEndpoint_iterator end_internalEndpoint ();
+ internalEndpoint_const_iterator begin_internalEndpoint () const;
+ internalEndpoint_const_iterator end_internalEndpoint () const;
+ void add_internalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > const& );
+ XSCRT::Type* internalEndpoint_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_internalEndpoint (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > > internalEndpoint_;
+
+ // externalReference
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::iterator externalReference_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::const_iterator externalReference_const_iterator;
+ externalReference_iterator begin_externalReference ();
+ externalReference_iterator end_externalReference ();
+ externalReference_const_iterator begin_externalReference () const;
+ externalReference_const_iterator end_externalReference () const;
+ void add_externalReference ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& );
+ XSCRT::Type* externalReference_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_externalReference (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > > externalReference_;
+
+ // deployedResource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > >::iterator deployedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > >::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 ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployedResource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployedResource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > > deployedResource_;
+
+ public:
+ PlanConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ PlanConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PlanConnectionDescription (PlanConnectionDescription const& s);
+
+ PlanConnectionDescription&
+ operator= (PlanConnectionDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ImplementationDependency : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ImplementationDependency, ACE_Null_Mutex > _ptr;
+
+ // requiredType
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& requiredType () const;
+ void requiredType (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requiredType_;
+
+ public:
+ ImplementationDependency (::XMLSchema::string< ACE_TCHAR > const& requiredType__);
+
+ ImplementationDependency (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ImplementationDependency (ImplementationDependency const& s);
+
+ ImplementationDependency&
+ operator= (ImplementationDependency const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Capability : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Capability, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // resourceType
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator resourceType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator resourceType_const_iterator;
+ resourceType_iterator begin_resourceType ();
+ resourceType_iterator end_resourceType ();
+ resourceType_const_iterator begin_resourceType () const;
+ resourceType_const_iterator end_resourceType () const;
+ void add_resourceType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* resourceType_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_resourceType (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > resourceType_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > > property_;
+
+ public:
+ Capability (::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ Capability (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Capability (Capability const& s);
+
+ Capability&
+ operator= (Capability const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ImplementationRequirement : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ImplementationRequirement, ACE_Null_Mutex > _ptr;
+
+ // resourceUsage
+ //
+ public:
+ bool resourceUsage_p () const;
+ ::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage () const;
+ void resourceUsage (::CIAO::Config_Handlers::ResourceUsageKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > resourceUsage_;
+
+ // resourcePort
+ //
+ public:
+ bool resourcePort_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& resourcePort () const;
+ void resourcePort (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourcePort_;
+
+ // componentPort
+ //
+ public:
+ bool componentPort_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& componentPort () const;
+ void componentPort (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > componentPort_;
+
+ // resourceType
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType () const;
+ void resourceType (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
+
+ public:
+ ImplementationRequirement (::XMLSchema::string< ACE_TCHAR > const& resourceType__,
+ ::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ ImplementationRequirement (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ImplementationRequirement (ImplementationRequirement const& s);
+
+ ImplementationRequirement&
+ operator= (ImplementationRequirement const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export SubcomponentPortEndpoint : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SubcomponentPortEndpoint, ACE_Null_Mutex > _ptr;
+
+ // portName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& portName () const;
+ void portName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
+
+ // instance
+ //
+ public:
+ ::CIAO::Config_Handlers::IdRef const& instance () const;
+ void instance (::CIAO::Config_Handlers::IdRef const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > instance_;
+
+ public:
+ SubcomponentPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__,
+ ::CIAO::Config_Handlers::IdRef const& instance__);
+
+ SubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SubcomponentPortEndpoint (SubcomponentPortEndpoint const& s);
+
+ SubcomponentPortEndpoint&
+ operator= (SubcomponentPortEndpoint const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export AssemblyConnectionDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < AssemblyConnectionDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // deployRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
+ deployRequirement_iterator begin_deployRequirement ();
+ deployRequirement_iterator end_deployRequirement ();
+ deployRequirement_const_iterator begin_deployRequirement () const;
+ deployRequirement_const_iterator end_deployRequirement () const;
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
+
+ // internalEndpoint
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > >::iterator internalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > >::const_iterator internalEndpoint_const_iterator;
+ internalEndpoint_iterator begin_internalEndpoint ();
+ internalEndpoint_iterator end_internalEndpoint ();
+ internalEndpoint_const_iterator begin_internalEndpoint () const;
+ internalEndpoint_const_iterator end_internalEndpoint () const;
+ void add_internalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > const& );
+ XSCRT::Type* internalEndpoint_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_internalEndpoint (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > > internalEndpoint_;
+
+ // externalEndpoint
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::iterator externalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::const_iterator externalEndpoint_const_iterator;
+ externalEndpoint_iterator begin_externalEndpoint ();
+ externalEndpoint_iterator end_externalEndpoint ();
+ externalEndpoint_const_iterator begin_externalEndpoint () const;
+ externalEndpoint_const_iterator end_externalEndpoint () const;
+ void add_externalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& );
+ XSCRT::Type* externalEndpoint_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_externalEndpoint (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > > externalEndpoint_;
+
+ // externalReference
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::iterator externalReference_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::const_iterator externalReference_const_iterator;
+ externalReference_iterator begin_externalReference ();
+ externalReference_iterator end_externalReference ();
+ externalReference_const_iterator begin_externalReference () const;
+ externalReference_const_iterator end_externalReference () const;
+ void add_externalReference ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& );
+ XSCRT::Type* externalReference_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_externalReference (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > > externalReference_;
+
+ public:
+ AssemblyConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ AssemblyConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ AssemblyConnectionDescription (AssemblyConnectionDescription const& s);
+
+ AssemblyConnectionDescription&
+ operator= (AssemblyConnectionDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export PlanLocalityKind : public ::XSCRT::Type
+ {
+ public:
+ PlanLocalityKind (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PlanLocalityKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
+
+ static PlanLocalityKind const SameProcess;
+ static PlanLocalityKind const DifferentProcess;
+ static PlanLocalityKind const NoConstraint;
+
+ enum Value
+ {
+ SameProcess_l, DifferentProcess_l, NoConstraint_l
+ };
+
+
+ Value
+ integral () const;
+
+ friend bool XSC_XML_Handlers_Export
+ operator== (PlanLocalityKind const& a, PlanLocalityKind const& b);
+
+ friend bool XSC_XML_Handlers_Export
+ operator!= (PlanLocalityKind const& a, PlanLocalityKind const& b);
+
+ private:
+ PlanLocalityKind (Value v);
+
+ Value v_;
+ };
+
+ bool XSC_XML_Handlers_Export operator== (PlanLocalityKind const &a, PlanLocalityKind const &b);
+
+ bool XSC_XML_Handlers_Export operator!= (PlanLocalityKind const &a, PlanLocalityKind const &b);
+
+
+ class XSC_XML_Handlers_Export PlanLocality : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanLocality, ACE_Null_Mutex > _ptr;
+
+ // constraint
+ //
+ public:
+ ::CIAO::Config_Handlers::PlanLocalityKind const& constraint () const;
+ void constraint (::CIAO::Config_Handlers::PlanLocalityKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::PlanLocalityKind > constraint_;
+
+ // constrainedInstance
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > >::iterator constrainedInstance_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > >::const_iterator constrainedInstance_const_iterator;
+ constrainedInstance_iterator begin_constrainedInstance ();
+ constrainedInstance_iterator end_constrainedInstance ();
+ constrainedInstance_const_iterator begin_constrainedInstance () const;
+ constrainedInstance_const_iterator end_constrainedInstance () const;
+ void add_constrainedInstance ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > const& );
+ XSCRT::Type* constrainedInstance_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_constrainedInstance (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > > constrainedInstance_;
+
+ public:
+ PlanLocality (::CIAO::Config_Handlers::PlanLocalityKind const& constraint__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > > const& constrainedInstance__);
+
+ PlanLocality (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PlanLocality (PlanLocality const& s);
+
+ PlanLocality&
+ operator= (PlanLocality const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export IdRef : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::IdRef >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ idref (Type&);
+
+ virtual void
+ idref (Type const&);
+
+ virtual void
+ idref_none (Type&);
+
+ virtual void
+ idref_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ typedef
+ ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::TCKind >
+ TCKind;
+
+ struct XSC_XML_Handlers_Export DataType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::DataType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ kind (Type&);
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ enum_ (Type&);
+
+ virtual void
+ enum_ (Type const&);
+
+ virtual void
+ enum_none (Type&);
+
+ virtual void
+ enum_none (Type const&);
+
+ virtual void
+ struct_ (Type&);
+
+ virtual void
+ struct_ (Type const&);
+
+ virtual void
+ struct_none (Type&);
+
+ virtual void
+ struct_none (Type const&);
+
+ virtual void
+ value (Type&);
+
+ virtual void
+ value (Type const&);
+
+ virtual void
+ value_none (Type&);
+
+ virtual void
+ value_none (Type const&);
+
+ virtual void
+ sequence (Type&);
+
+ virtual void
+ sequence (Type const&);
+
+ virtual void
+ sequence_none (Type&);
+
+ virtual void
+ sequence_none (Type const&);
+
+ virtual void
+ alias (Type&);
+
+ virtual void
+ alias (Type const&);
+
+ virtual void
+ alias_none (Type&);
+
+ virtual void
+ alias_none (Type const&);
+
+ virtual void
+ id (Type&);
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ id_none (Type&);
+
+ virtual void
+ id_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export DataValue : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::DataValue >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ short_ (Type&);
+
+ virtual void
+ short_ (Type const&);
+
+ virtual void
+ short_pre (Type&);
+
+ virtual void
+ short_pre (Type const&);
+
+ virtual void
+ short_next (Type&);
+
+ virtual void
+ short_next (Type const&);
+
+ virtual void
+ short_post (Type&);
+
+ virtual void
+ short_post (Type const&);
+
+ virtual void
+ short_none (Type&);
+
+ virtual void
+ short_none (Type const&);
+
+ virtual void
+ long_ (Type&);
+
+ virtual void
+ long_ (Type const&);
+
+ virtual void
+ long_pre (Type&);
+
+ virtual void
+ long_pre (Type const&);
+
+ virtual void
+ long_next (Type&);
+
+ virtual void
+ long_next (Type const&);
+
+ virtual void
+ long_post (Type&);
+
+ virtual void
+ long_post (Type const&);
+
+ virtual void
+ long_none (Type&);
+
+ virtual void
+ long_none (Type const&);
+
+ virtual void
+ ushort (Type&);
+
+ virtual void
+ ushort (Type const&);
+
+ virtual void
+ ushort_pre (Type&);
+
+ virtual void
+ ushort_pre (Type const&);
+
+ virtual void
+ ushort_next (Type&);
+
+ virtual void
+ ushort_next (Type const&);
+
+ virtual void
+ ushort_post (Type&);
+
+ virtual void
+ ushort_post (Type const&);
+
+ virtual void
+ ushort_none (Type&);
+
+ virtual void
+ ushort_none (Type const&);
+
+ virtual void
+ ulong (Type&);
+
+ virtual void
+ ulong (Type const&);
+
+ virtual void
+ ulong_pre (Type&);
+
+ virtual void
+ ulong_pre (Type const&);
+
+ virtual void
+ ulong_next (Type&);
+
+ virtual void
+ ulong_next (Type const&);
+
+ virtual void
+ ulong_post (Type&);
+
+ virtual void
+ ulong_post (Type const&);
+
+ virtual void
+ ulong_none (Type&);
+
+ virtual void
+ ulong_none (Type const&);
+
+ virtual void
+ float_ (Type&);
+
+ virtual void
+ float_ (Type const&);
+
+ virtual void
+ float_pre (Type&);
+
+ virtual void
+ float_pre (Type const&);
+
+ virtual void
+ float_next (Type&);
+
+ virtual void
+ float_next (Type const&);
+
+ virtual void
+ float_post (Type&);
+
+ virtual void
+ float_post (Type const&);
+
+ virtual void
+ float_none (Type&);
+
+ virtual void
+ float_none (Type const&);
+
+ virtual void
+ double_ (Type&);
+
+ virtual void
+ double_ (Type const&);
+
+ virtual void
+ double_pre (Type&);
+
+ virtual void
+ double_pre (Type const&);
+
+ virtual void
+ double_next (Type&);
+
+ virtual void
+ double_next (Type const&);
+
+ virtual void
+ double_post (Type&);
+
+ virtual void
+ double_post (Type const&);
+
+ virtual void
+ double_none (Type&);
+
+ virtual void
+ double_none (Type const&);
+
+ virtual void
+ boolean (Type&);
+
+ virtual void
+ boolean (Type const&);
+
+ virtual void
+ boolean_pre (Type&);
+
+ virtual void
+ boolean_pre (Type const&);
+
+ virtual void
+ boolean_next (Type&);
+
+ virtual void
+ boolean_next (Type const&);
+
+ virtual void
+ boolean_post (Type&);
+
+ virtual void
+ boolean_post (Type const&);
+
+ virtual void
+ boolean_none (Type&);
+
+ virtual void
+ boolean_none (Type const&);
+
+ virtual void
+ octet (Type&);
+
+ virtual void
+ octet (Type const&);
+
+ virtual void
+ octet_pre (Type&);
+
+ virtual void
+ octet_pre (Type const&);
+
+ virtual void
+ octet_next (Type&);
+
+ virtual void
+ octet_next (Type const&);
+
+ virtual void
+ octet_post (Type&);
+
+ virtual void
+ octet_post (Type const&);
+
+ virtual void
+ octet_none (Type&);
+
+ virtual void
+ octet_none (Type const&);
+
+ virtual void
+ enum_ (Type&);
+
+ virtual void
+ enum_ (Type const&);
+
+ virtual void
+ enum_pre (Type&);
+
+ virtual void
+ enum_pre (Type const&);
+
+ virtual void
+ enum_next (Type&);
+
+ virtual void
+ enum_next (Type const&);
+
+ virtual void
+ enum_post (Type&);
+
+ virtual void
+ enum_post (Type const&);
+
+ virtual void
+ enum_none (Type&);
+
+ virtual void
+ enum_none (Type const&);
+
+ virtual void
+ string (Type&);
+
+ virtual void
+ string (Type const&);
+
+ virtual void
+ string_pre (Type&);
+
+ virtual void
+ string_pre (Type const&);
+
+ virtual void
+ string_next (Type&);
+
+ virtual void
+ string_next (Type const&);
+
+ virtual void
+ string_post (Type&);
+
+ virtual void
+ string_post (Type const&);
+
+ virtual void
+ string_none (Type&);
+
+ virtual void
+ string_none (Type const&);
+
+ virtual void
+ longlong (Type&);
+
+ virtual void
+ longlong (Type const&);
+
+ virtual void
+ longlong_pre (Type&);
+
+ virtual void
+ longlong_pre (Type const&);
+
+ virtual void
+ longlong_next (Type&);
+
+ virtual void
+ longlong_next (Type const&);
+
+ virtual void
+ longlong_post (Type&);
+
+ virtual void
+ longlong_post (Type const&);
+
+ virtual void
+ longlong_none (Type&);
+
+ virtual void
+ longlong_none (Type const&);
+
+ virtual void
+ ulonglong (Type&);
+
+ virtual void
+ ulonglong (Type const&);
+
+ virtual void
+ ulonglong_pre (Type&);
+
+ virtual void
+ ulonglong_pre (Type const&);
+
+ virtual void
+ ulonglong_next (Type&);
+
+ virtual void
+ ulonglong_next (Type const&);
+
+ virtual void
+ ulonglong_post (Type&);
+
+ virtual void
+ ulonglong_post (Type const&);
+
+ virtual void
+ ulonglong_none (Type&);
+
+ virtual void
+ ulonglong_none (Type const&);
+
+ virtual void
+ longdouble (Type&);
+
+ virtual void
+ longdouble (Type const&);
+
+ virtual void
+ longdouble_pre (Type&);
+
+ virtual void
+ longdouble_pre (Type const&);
+
+ virtual void
+ longdouble_next (Type&);
+
+ virtual void
+ longdouble_next (Type const&);
+
+ virtual void
+ longdouble_post (Type&);
+
+ virtual void
+ longdouble_post (Type const&);
+
+ virtual void
+ longdouble_none (Type&);
+
+ virtual void
+ longdouble_none (Type const&);
+
+ virtual void
+ element (Type&);
+
+ virtual void
+ element (Type const&);
+
+ virtual void
+ element_pre (Type&);
+
+ virtual void
+ element_pre (Type const&);
+
+ virtual void
+ element_next (Type&);
+
+ virtual void
+ element_next (Type const&);
+
+ virtual void
+ element_post (Type&);
+
+ virtual void
+ element_post (Type const&);
+
+ virtual void
+ element_none (Type&);
+
+ virtual void
+ element_none (Type const&);
+
+ virtual void
+ member (Type&);
+
+ virtual void
+ member (Type const&);
+
+ virtual void
+ member_pre (Type&);
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type&);
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type&);
+
+ virtual void
+ member_post (Type const&);
+
+ virtual void
+ member_none (Type&);
+
+ virtual void
+ member_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export AliasType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::AliasType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type&);
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ elementType (Type&);
+
+ virtual void
+ elementType (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export EnumType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::EnumType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type&);
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ member (Type&);
+
+ virtual void
+ member (Type const&);
+
+ virtual void
+ member_pre (Type&);
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type&);
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type&);
+
+ virtual void
+ member_post (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export StructType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::StructType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type&);
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ member (Type&);
+
+ virtual void
+ member (Type const&);
+
+ virtual void
+ member_pre (Type&);
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type&);
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type&);
+
+ virtual void
+ member_post (Type const&);
+
+ virtual void
+ member_none (Type&);
+
+ virtual void
+ member_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export StructMemberType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::StructMemberType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ type (Type&);
+
+ virtual void
+ type (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ValueType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ValueType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type&);
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ modifier (Type&);
+
+ virtual void
+ modifier (Type const&);
+
+ virtual void
+ baseType (Type&);
+
+ virtual void
+ baseType (Type const&);
+
+ virtual void
+ member (Type&);
+
+ virtual void
+ member (Type const&);
+
+ virtual void
+ member_pre (Type&);
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type&);
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type&);
+
+ virtual void
+ member_post (Type const&);
+
+ virtual void
+ member_none (Type&);
+
+ virtual void
+ member_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ValueMemberType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ValueMemberType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ visibility (Type&);
+
+ virtual void
+ visibility (Type const&);
+
+ virtual void
+ type (Type&);
+
+ virtual void
+ type (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export NamedValue : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::NamedValue >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ value (Type&);
+
+ virtual void
+ value (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export SequenceType : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SequenceType >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ bound (Type&);
+
+ virtual void
+ bound (Type const&);
+
+ virtual void
+ bound_none (Type&);
+
+ virtual void
+ bound_none (Type const&);
+
+ virtual void
+ elementType (Type&);
+
+ virtual void
+ elementType (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Any : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Any >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ type (Type&);
+
+ virtual void
+ type (Type const&);
+
+ virtual void
+ value (Type&);
+
+ virtual void
+ value (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Property : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Property >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ value (Type&);
+
+ virtual void
+ value (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ typedef
+ ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SatisfierPropertyKind >
+ SatisfierPropertyKind;
+
+ struct XSC_XML_Handlers_Export SatisfierProperty : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SatisfierProperty >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ kind (Type&);
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ dynamic (Type&);
+
+ virtual void
+ dynamic (Type const&);
+
+ virtual void
+ value (Type&);
+
+ virtual void
+ value (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Resource : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Resource >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType (Type&);
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ resourceType_pre (Type&);
+
+ virtual void
+ resourceType_pre (Type const&);
+
+ virtual void
+ resourceType_next (Type&);
+
+ virtual void
+ resourceType_next (Type const&);
+
+ virtual void
+ resourceType_post (Type&);
+
+ virtual void
+ resourceType_post (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Requirement : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Requirement >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType (Type&);
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ResourceDeploymentDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ResourceDeploymentDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ requirementName (Type&);
+
+ virtual void
+ requirementName (Type const&);
+
+ virtual void
+ resourceName (Type&);
+
+ virtual void
+ resourceName (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ArtifactDeploymentDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ArtifactDeploymentDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source (Type&);
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ source_pre (Type&);
+
+ virtual void
+ source_pre (Type const&);
+
+ virtual void
+ source_next (Type&);
+
+ virtual void
+ source_next (Type const&);
+
+ virtual void
+ source_post (Type&);
+
+ virtual void
+ source_post (Type const&);
+
+ virtual void
+ source_none (Type&);
+
+ virtual void
+ source_none (Type const&);
+
+ virtual void
+ node (Type&);
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ location (Type&);
+
+ virtual void
+ location (Type const&);
+
+ virtual void
+ location_pre (Type&);
+
+ virtual void
+ location_pre (Type const&);
+
+ virtual void
+ location_next (Type&);
+
+ virtual void
+ location_next (Type const&);
+
+ virtual void
+ location_post (Type&);
+
+ virtual void
+ location_post (Type const&);
+
+ virtual void
+ location_none (Type&);
+
+ virtual void
+ location_none (Type const&);
+
+ virtual void
+ execParameter (Type&);
+
+ virtual void
+ execParameter (Type const&);
+
+ virtual void
+ execParameter_pre (Type&);
+
+ virtual void
+ execParameter_pre (Type const&);
+
+ virtual void
+ execParameter_next (Type&);
+
+ virtual void
+ execParameter_next (Type const&);
+
+ virtual void
+ execParameter_post (Type&);
+
+ virtual void
+ execParameter_post (Type const&);
+
+ virtual void
+ execParameter_none (Type&);
+
+ virtual void
+ execParameter_none (Type const&);
+
+ virtual void
+ deployRequirement (Type&);
+
+ virtual void
+ deployRequirement (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type&);
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type&);
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type&);
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployRequirement_none (Type&);
+
+ virtual void
+ deployRequirement_none (Type const&);
+
+ virtual void
+ deployedResource (Type&);
+
+ virtual void
+ 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
+ deployedResource_none (Type const&);
+
+ virtual void
+ id (Type&);
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ id_none (Type&);
+
+ virtual void
+ id_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export MonolithicDeploymentDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::MonolithicDeploymentDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source (Type&);
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ source_pre (Type&);
+
+ virtual void
+ source_pre (Type const&);
+
+ virtual void
+ source_next (Type&);
+
+ virtual void
+ source_next (Type const&);
+
+ virtual void
+ source_post (Type&);
+
+ virtual void
+ source_post (Type const&);
+
+ virtual void
+ source_none (Type&);
+
+ virtual void
+ source_none (Type const&);
+
+ virtual void
+ artifact (Type&);
+
+ virtual void
+ artifact (Type const&);
+
+ virtual void
+ artifact_pre (Type&);
+
+ virtual void
+ artifact_pre (Type const&);
+
+ virtual void
+ artifact_next (Type&);
+
+ virtual void
+ artifact_next (Type const&);
+
+ virtual void
+ artifact_post (Type&);
+
+ virtual void
+ artifact_post (Type const&);
+
+ virtual void
+ artifact_none (Type&);
+
+ virtual void
+ artifact_none (Type const&);
+
+ virtual void
+ execParameter (Type&);
+
+ virtual void
+ execParameter (Type const&);
+
+ virtual void
+ execParameter_pre (Type&);
+
+ virtual void
+ execParameter_pre (Type const&);
+
+ virtual void
+ execParameter_next (Type&);
+
+ virtual void
+ execParameter_next (Type const&);
+
+ virtual void
+ execParameter_post (Type&);
+
+ virtual void
+ execParameter_post (Type const&);
+
+ virtual void
+ execParameter_none (Type&);
+
+ virtual void
+ execParameter_none (Type const&);
+
+ virtual void
+ deployRequirement (Type&);
+
+ virtual void
+ deployRequirement (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type&);
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type&);
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type&);
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployRequirement_none (Type&);
+
+ virtual void
+ deployRequirement_none (Type const&);
+
+ virtual void
+ id (Type&);
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ id_none (Type&);
+
+ virtual void
+ id_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ typedef
+ ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ResourceUsageKind >
+ ResourceUsageKind;
+
+ struct XSC_XML_Handlers_Export InstanceResourceDeploymentDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ resourceUsage (Type&);
+
+ virtual void
+ resourceUsage (Type const&);
+
+ virtual void
+ requirementName (Type&);
+
+ virtual void
+ requirementName (Type const&);
+
+ virtual void
+ resourceName (Type&);
+
+ virtual void
+ resourceName (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export InstanceDeploymentDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::InstanceDeploymentDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ node (Type&);
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ source (Type&);
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ implementation (Type&);
+
+ virtual void
+ implementation (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ deployedResource (Type&);
+
+ virtual void
+ 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
+ deployedResource_none (Type const&);
+
+ virtual void
+ deployedSharedResource (Type&);
+
+ virtual void
+ deployedSharedResource (Type const&);
+
+ virtual void
+ deployedSharedResource_none (Type&);
+
+ virtual void
+ deployedSharedResource_none (Type const&);
+
+ virtual void
+ id (Type&);
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ id_none (Type&);
+
+ virtual void
+ id_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ typedef
+ ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::CCMComponentPortKind >
+ CCMComponentPortKind;
+
+ struct XSC_XML_Handlers_Export ComponentPortDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentPortDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ specificType (Type&);
+
+ virtual void
+ specificType (Type const&);
+
+ virtual void
+ specificType_none (Type&);
+
+ virtual void
+ specificType_none (Type const&);
+
+ virtual void
+ supportedType (Type&);
+
+ virtual void
+ supportedType (Type const&);
+
+ virtual void
+ supportedType_pre (Type&);
+
+ virtual void
+ supportedType_pre (Type const&);
+
+ virtual void
+ supportedType_next (Type&);
+
+ virtual void
+ supportedType_next (Type const&);
+
+ virtual void
+ supportedType_post (Type&);
+
+ virtual void
+ supportedType_post (Type const&);
+
+ virtual void
+ supportedType_none (Type&);
+
+ virtual void
+ supportedType_none (Type const&);
+
+ virtual void
+ provider (Type&);
+
+ virtual void
+ provider (Type const&);
+
+ virtual void
+ exclusiveProvider (Type&);
+
+ virtual void
+ exclusiveProvider (Type const&);
+
+ virtual void
+ exclusiveUser (Type&);
+
+ virtual void
+ exclusiveUser (Type const&);
+
+ virtual void
+ optional (Type&);
+
+ virtual void
+ optional (Type const&);
+
+ virtual void
+ kind (Type&);
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ templateParam (Type&);
+
+ virtual void
+ templateParam (Type const&);
+
+ virtual void
+ templateParam_pre (Type&);
+
+ virtual void
+ templateParam_pre (Type const&);
+
+ virtual void
+ templateParam_next (Type&);
+
+ virtual void
+ templateParam_next (Type const&);
+
+ virtual void
+ templateParam_post (Type&);
+
+ virtual void
+ templateParam_post (Type const&);
+
+ virtual void
+ templateParam_none (Type&);
+
+ virtual void
+ templateParam_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ComponentPropertyDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentPropertyDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ type (Type&);
+
+ virtual void
+ type (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ComponentExternalPortEndpoint : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ portName (Type&);
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export PlanSubcomponentPortEndpoint : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ portName (Type&);
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ provider (Type&);
+
+ virtual void
+ provider (Type const&);
+
+ virtual void
+ provider_none (Type&);
+
+ virtual void
+ provider_none (Type const&);
+
+ virtual void
+ kind (Type&);
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ instance (Type&);
+
+ virtual void
+ instance (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ExternalReferenceEndpoint : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ExternalReferenceEndpoint >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ location (Type&);
+
+ virtual void
+ location (Type const&);
+
+ virtual void
+ provider (Type&);
+
+ virtual void
+ provider (Type const&);
+
+ virtual void
+ portName (Type&);
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ portName_none (Type&);
+
+ virtual void
+ portName_none (Type const&);
+
+ virtual void
+ supportedType (Type&);
+
+ virtual void
+ supportedType (Type const&);
+
+ virtual void
+ supportedType_pre (Type&);
+
+ virtual void
+ supportedType_pre (Type const&);
+
+ virtual void
+ supportedType_next (Type&);
+
+ virtual void
+ supportedType_next (Type const&);
+
+ virtual void
+ supportedType_post (Type&);
+
+ virtual void
+ supportedType_post (Type const&);
+
+ virtual void
+ supportedType_none (Type&);
+
+ virtual void
+ supportedType_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ConnectionResourceDeploymentDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ targetName (Type&);
+
+ virtual void
+ targetName (Type const&);
+
+ virtual void
+ requirementName (Type&);
+
+ virtual void
+ requirementName (Type const&);
+
+ virtual void
+ resourceName (Type&);
+
+ virtual void
+ resourceName (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export PlanConnectionDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PlanConnectionDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source (Type&);
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ source_none (Type&);
+
+ virtual void
+ source_none (Type const&);
+
+ virtual void
+ deployRequirement (Type&);
+
+ virtual void
+ deployRequirement (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type&);
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type&);
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type&);
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployRequirement_none (Type&);
+
+ virtual void
+ deployRequirement_none (Type const&);
+
+ virtual void
+ externalEndpoint (Type&);
+
+ virtual void
+ externalEndpoint (Type const&);
+
+ virtual void
+ externalEndpoint_pre (Type&);
+
+ virtual void
+ externalEndpoint_pre (Type const&);
+
+ virtual void
+ externalEndpoint_next (Type&);
+
+ virtual void
+ externalEndpoint_next (Type const&);
+
+ virtual void
+ externalEndpoint_post (Type&);
+
+ virtual void
+ externalEndpoint_post (Type const&);
+
+ virtual void
+ externalEndpoint_none (Type&);
+
+ virtual void
+ externalEndpoint_none (Type const&);
+
+ virtual void
+ internalEndpoint (Type&);
+
+ virtual void
+ internalEndpoint (Type const&);
+
+ virtual void
+ internalEndpoint_pre (Type&);
+
+ virtual void
+ internalEndpoint_pre (Type const&);
+
+ virtual void
+ internalEndpoint_next (Type&);
+
+ virtual void
+ internalEndpoint_next (Type const&);
+
+ virtual void
+ internalEndpoint_post (Type&);
+
+ virtual void
+ internalEndpoint_post (Type const&);
+
+ virtual void
+ internalEndpoint_none (Type&);
+
+ virtual void
+ internalEndpoint_none (Type const&);
+
+ virtual void
+ externalReference (Type&);
+
+ virtual void
+ externalReference (Type const&);
+
+ virtual void
+ externalReference_pre (Type&);
+
+ virtual void
+ externalReference_pre (Type const&);
+
+ virtual void
+ externalReference_next (Type&);
+
+ virtual void
+ externalReference_next (Type const&);
+
+ virtual void
+ externalReference_post (Type&);
+
+ virtual void
+ externalReference_post (Type const&);
+
+ virtual void
+ externalReference_none (Type&);
+
+ virtual void
+ externalReference_none (Type const&);
+
+ virtual void
+ deployedResource (Type&);
+
+ virtual void
+ 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
+ deployedResource_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ImplementationDependency : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ImplementationDependency >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ requiredType (Type&);
+
+ virtual void
+ requiredType (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Capability : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Capability >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType (Type&);
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ resourceType_pre (Type&);
+
+ virtual void
+ resourceType_pre (Type const&);
+
+ virtual void
+ resourceType_next (Type&);
+
+ virtual void
+ resourceType_next (Type const&);
+
+ virtual void
+ resourceType_post (Type&);
+
+ virtual void
+ resourceType_post (Type const&);
+
+ virtual void
+ resourceType_none (Type&);
+
+ virtual void
+ resourceType_none (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ImplementationRequirement : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ImplementationRequirement >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ resourceUsage (Type&);
+
+ virtual void
+ resourceUsage (Type const&);
+
+ virtual void
+ resourceUsage_none (Type&);
+
+ virtual void
+ resourceUsage_none (Type const&);
+
+ virtual void
+ resourcePort (Type&);
+
+ virtual void
+ resourcePort (Type const&);
+
+ virtual void
+ resourcePort_none (Type&);
+
+ virtual void
+ resourcePort_none (Type const&);
+
+ virtual void
+ componentPort (Type&);
+
+ virtual void
+ componentPort (Type const&);
+
+ virtual void
+ componentPort_none (Type&);
+
+ virtual void
+ componentPort_none (Type const&);
+
+ virtual void
+ resourceType (Type&);
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export SubcomponentPortEndpoint : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SubcomponentPortEndpoint >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ portName (Type&);
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ instance (Type&);
+
+ virtual void
+ instance (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export AssemblyConnectionDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::AssemblyConnectionDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ deployRequirement (Type&);
+
+ virtual void
+ deployRequirement (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type&);
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type&);
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type&);
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployRequirement_none (Type&);
+
+ virtual void
+ deployRequirement_none (Type const&);
+
+ virtual void
+ internalEndpoint (Type&);
+
+ virtual void
+ internalEndpoint (Type const&);
+
+ virtual void
+ internalEndpoint_pre (Type&);
+
+ virtual void
+ internalEndpoint_pre (Type const&);
+
+ virtual void
+ internalEndpoint_next (Type&);
+
+ virtual void
+ internalEndpoint_next (Type const&);
+
+ virtual void
+ internalEndpoint_post (Type&);
+
+ virtual void
+ internalEndpoint_post (Type const&);
+
+ virtual void
+ internalEndpoint_none (Type&);
+
+ virtual void
+ internalEndpoint_none (Type const&);
+
+ virtual void
+ externalEndpoint (Type&);
+
+ virtual void
+ externalEndpoint (Type const&);
+
+ virtual void
+ externalEndpoint_pre (Type&);
+
+ virtual void
+ externalEndpoint_pre (Type const&);
+
+ virtual void
+ externalEndpoint_next (Type&);
+
+ virtual void
+ externalEndpoint_next (Type const&);
+
+ virtual void
+ externalEndpoint_post (Type&);
+
+ virtual void
+ externalEndpoint_post (Type const&);
+
+ virtual void
+ externalEndpoint_none (Type&);
+
+ virtual void
+ externalEndpoint_none (Type const&);
+
+ virtual void
+ externalReference (Type&);
+
+ virtual void
+ externalReference (Type const&);
+
+ virtual void
+ externalReference_pre (Type&);
+
+ virtual void
+ externalReference_pre (Type const&);
+
+ virtual void
+ externalReference_next (Type&);
+
+ virtual void
+ externalReference_next (Type const&);
+
+ virtual void
+ externalReference_post (Type&);
+
+ virtual void
+ externalReference_post (Type const&);
+
+ virtual void
+ externalReference_none (Type&);
+
+ virtual void
+ externalReference_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ typedef
+ ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PlanLocalityKind >
+ PlanLocalityKind;
+
+ struct XSC_XML_Handlers_Export PlanLocality : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PlanLocality >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ constraint (Type&);
+
+ virtual void
+ constraint (Type const&);
+
+ virtual void
+ constrainedInstance (Type&);
+
+ virtual void
+ constrainedInstance (Type const&);
+
+ virtual void
+ constrainedInstance_pre (Type&);
+
+ virtual void
+ constrainedInstance_pre (Type const&);
+
+ virtual void
+ constrainedInstance_next (Type&);
+
+ virtual void
+ constrainedInstance_next (Type const&);
+
+ virtual void
+ constrainedInstance_post (Type&);
+
+ virtual void
+ constrainedInstance_post (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct IdRef : Traversal::IdRef,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::IdRef Type;
+ IdRef (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ idref (Type &o)
+ {
+ this->idref (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ idref (Type const&);
+
+ protected:
+ IdRef ();
+ };
+
+ struct TCKind : Traversal::TCKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ TCKind (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ protected:
+ TCKind ();
+ };
+
+ struct DataType : Traversal::DataType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::DataType Type;
+ DataType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ kind (Type &o)
+ {
+ this->kind (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ enum_ (Type &o)
+ {
+ this->enum_ (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ enum_ (Type const&);
+
+ virtual void
+ struct_ (Type &o)
+ {
+ this->struct_ (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ struct_ (Type const&);
+
+ virtual void
+ value (Type &o)
+ {
+ this->value (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ value (Type const&);
+
+ virtual void
+ sequence (Type &o)
+ {
+ this->sequence (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sequence (Type const&);
+
+ virtual void
+ alias (Type &o)
+ {
+ this->alias (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ alias (Type const&);
+
+ virtual void
+ id (Type &o)
+ {
+ this->id (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ id (Type const&);
+
+ protected:
+ DataType ();
+ };
+
+ struct DataValue : Traversal::DataValue,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::DataValue Type;
+ DataValue (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ short_pre (Type &o)
+ {
+ this->short_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ short_pre (Type const&);
+
+ virtual void
+ short_next (Type &o)
+ {
+ this->short_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ short_next (Type const&);
+
+ virtual void
+ short_post (Type &o)
+ {
+ this->short_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ short_post (Type const&);
+
+ virtual void
+ long_pre (Type &o)
+ {
+ this->long_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ long_pre (Type const&);
+
+ virtual void
+ long_next (Type &o)
+ {
+ this->long_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ long_next (Type const&);
+
+ virtual void
+ long_post (Type &o)
+ {
+ this->long_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ long_post (Type const&);
+
+ virtual void
+ ushort_pre (Type &o)
+ {
+ this->ushort_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ushort_pre (Type const&);
+
+ virtual void
+ ushort_next (Type &o)
+ {
+ this->ushort_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ushort_next (Type const&);
+
+ virtual void
+ ushort_post (Type &o)
+ {
+ this->ushort_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ushort_post (Type const&);
+
+ virtual void
+ ulong_pre (Type &o)
+ {
+ this->ulong_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ulong_pre (Type const&);
+
+ virtual void
+ ulong_next (Type &o)
+ {
+ this->ulong_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ulong_next (Type const&);
+
+ virtual void
+ ulong_post (Type &o)
+ {
+ this->ulong_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ulong_post (Type const&);
+
+ virtual void
+ float_pre (Type &o)
+ {
+ this->float_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ float_pre (Type const&);
+
+ virtual void
+ float_next (Type &o)
+ {
+ this->float_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ float_next (Type const&);
+
+ virtual void
+ float_post (Type &o)
+ {
+ this->float_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ float_post (Type const&);
+
+ virtual void
+ double_pre (Type &o)
+ {
+ this->double_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ double_pre (Type const&);
+
+ virtual void
+ double_next (Type &o)
+ {
+ this->double_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ double_next (Type const&);
+
+ virtual void
+ double_post (Type &o)
+ {
+ this->double_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ double_post (Type const&);
+
+ virtual void
+ boolean_pre (Type &o)
+ {
+ this->boolean_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ boolean_pre (Type const&);
+
+ virtual void
+ boolean_next (Type &o)
+ {
+ this->boolean_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ boolean_next (Type const&);
+
+ virtual void
+ boolean_post (Type &o)
+ {
+ this->boolean_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ boolean_post (Type const&);
+
+ virtual void
+ octet_pre (Type &o)
+ {
+ this->octet_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ octet_pre (Type const&);
+
+ virtual void
+ octet_next (Type &o)
+ {
+ this->octet_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ octet_next (Type const&);
+
+ virtual void
+ octet_post (Type &o)
+ {
+ this->octet_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ octet_post (Type const&);
+
+ virtual void
+ enum_pre (Type &o)
+ {
+ this->enum_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ enum_pre (Type const&);
+
+ virtual void
+ enum_next (Type &o)
+ {
+ this->enum_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ enum_next (Type const&);
+
+ virtual void
+ enum_post (Type &o)
+ {
+ this->enum_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ enum_post (Type const&);
+
+ virtual void
+ string_pre (Type &o)
+ {
+ this->string_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ string_pre (Type const&);
+
+ virtual void
+ string_next (Type &o)
+ {
+ this->string_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ string_next (Type const&);
+
+ virtual void
+ string_post (Type &o)
+ {
+ this->string_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ string_post (Type const&);
+
+ virtual void
+ longlong_pre (Type &o)
+ {
+ this->longlong_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ longlong_pre (Type const&);
+
+ virtual void
+ longlong_next (Type &o)
+ {
+ this->longlong_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ longlong_next (Type const&);
+
+ virtual void
+ longlong_post (Type &o)
+ {
+ this->longlong_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ longlong_post (Type const&);
+
+ virtual void
+ ulonglong_pre (Type &o)
+ {
+ this->ulonglong_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ulonglong_pre (Type const&);
+
+ virtual void
+ ulonglong_next (Type &o)
+ {
+ this->ulonglong_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ulonglong_next (Type const&);
+
+ virtual void
+ ulonglong_post (Type &o)
+ {
+ this->ulonglong_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ ulonglong_post (Type const&);
+
+ virtual void
+ longdouble_pre (Type &o)
+ {
+ this->longdouble_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ longdouble_pre (Type const&);
+
+ virtual void
+ longdouble_next (Type &o)
+ {
+ this->longdouble_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ longdouble_next (Type const&);
+
+ virtual void
+ longdouble_post (Type &o)
+ {
+ this->longdouble_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ longdouble_post (Type const&);
+
+ virtual void
+ element_pre (Type &o)
+ {
+ this->element_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ element_pre (Type const&);
+
+ virtual void
+ element_next (Type &o)
+ {
+ this->element_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ element_next (Type const&);
+
+ virtual void
+ element_post (Type &o)
+ {
+ this->element_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ element_post (Type const&);
+
+ virtual void
+ member_pre (Type &o)
+ {
+ this->member_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type &o)
+ {
+ this->member_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type &o)
+ {
+ this->member_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_post (Type const&);
+
+ protected:
+ DataValue ();
+ };
+
+ struct AliasType : Traversal::AliasType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::AliasType Type;
+ AliasType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type &o)
+ {
+ this->typeId (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ elementType (Type &o)
+ {
+ this->elementType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ elementType (Type const&);
+
+ protected:
+ AliasType ();
+ };
+
+ struct EnumType : Traversal::EnumType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::EnumType Type;
+ EnumType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type &o)
+ {
+ this->typeId (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ member_pre (Type &o)
+ {
+ this->member_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type &o)
+ {
+ this->member_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type &o)
+ {
+ this->member_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_post (Type const&);
+
+ protected:
+ EnumType ();
+ };
+
+ struct StructType : Traversal::StructType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::StructType Type;
+ StructType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type &o)
+ {
+ this->typeId (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ member_pre (Type &o)
+ {
+ this->member_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type &o)
+ {
+ this->member_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type &o)
+ {
+ this->member_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_post (Type const&);
+
+ protected:
+ StructType ();
+ };
+
+ struct StructMemberType : Traversal::StructMemberType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::StructMemberType Type;
+ StructMemberType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ type (Type &o)
+ {
+ this->type (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ type (Type const&);
+
+ protected:
+ StructMemberType ();
+ };
+
+ struct ValueType : Traversal::ValueType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ValueType Type;
+ ValueType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ typeId (Type &o)
+ {
+ this->typeId (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ typeId (Type const&);
+
+ virtual void
+ modifier (Type &o)
+ {
+ this->modifier (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ modifier (Type const&);
+
+ virtual void
+ baseType (Type &o)
+ {
+ this->baseType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ baseType (Type const&);
+
+ virtual void
+ member_pre (Type &o)
+ {
+ this->member_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_pre (Type const&);
+
+ virtual void
+ member_next (Type &o)
+ {
+ this->member_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_next (Type const&);
+
+ virtual void
+ member_post (Type &o)
+ {
+ this->member_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ member_post (Type const&);
+
+ protected:
+ ValueType ();
+ };
+
+ struct ValueMemberType : Traversal::ValueMemberType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ValueMemberType Type;
+ ValueMemberType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ visibility (Type &o)
+ {
+ this->visibility (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ visibility (Type const&);
+
+ virtual void
+ type (Type &o)
+ {
+ this->type (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ type (Type const&);
+
+ protected:
+ ValueMemberType ();
+ };
+
+ struct NamedValue : Traversal::NamedValue,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::NamedValue Type;
+ NamedValue (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ value (Type &o)
+ {
+ this->value (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ value (Type const&);
+
+ protected:
+ NamedValue ();
+ };
+
+ struct SequenceType : Traversal::SequenceType,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::SequenceType Type;
+ SequenceType (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ bound (Type &o)
+ {
+ this->bound (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ bound (Type const&);
+
+ virtual void
+ elementType (Type &o)
+ {
+ this->elementType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ elementType (Type const&);
+
+ protected:
+ SequenceType ();
+ };
+
+ struct Any : Traversal::Any,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Any Type;
+ Any (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ type (Type &o)
+ {
+ this->type (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ type (Type const&);
+
+ virtual void
+ value (Type &o)
+ {
+ this->value (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ value (Type const&);
+
+ protected:
+ Any ();
+ };
+
+ struct Property : Traversal::Property,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Property Type;
+ Property (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ value (Type &o)
+ {
+ this->value (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ value (Type const&);
+
+ protected:
+ Property ();
+ };
+
+ struct SatisfierPropertyKind : Traversal::SatisfierPropertyKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ SatisfierPropertyKind (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ protected:
+ SatisfierPropertyKind ();
+ };
+
+ struct SatisfierProperty : Traversal::SatisfierProperty,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::SatisfierProperty Type;
+ SatisfierProperty (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ kind (Type &o)
+ {
+ this->kind (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ dynamic (Type &o)
+ {
+ this->dynamic (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dynamic (Type const&);
+
+ virtual void
+ value (Type &o)
+ {
+ this->value (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ value (Type const&);
+
+ protected:
+ SatisfierProperty ();
+ };
+
+ struct Resource : Traversal::Resource,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Resource Type;
+ Resource (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType_pre (Type &o)
+ {
+ this->resourceType_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType_pre (Type const&);
+
+ virtual void
+ resourceType_next (Type &o)
+ {
+ this->resourceType_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType_next (Type const&);
+
+ virtual void
+ resourceType_post (Type &o)
+ {
+ this->resourceType_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType_post (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ Resource ();
+ };
+
+ struct Requirement : Traversal::Requirement,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Requirement Type;
+ Requirement (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType (Type &o)
+ {
+ this->resourceType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ Requirement ();
+ };
+
+ struct ResourceDeploymentDescription : Traversal::ResourceDeploymentDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ResourceDeploymentDescription Type;
+ ResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ requirementName (Type &o)
+ {
+ this->requirementName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requirementName (Type const&);
+
+ virtual void
+ resourceName (Type &o)
+ {
+ this->resourceName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceName (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ ResourceDeploymentDescription ();
+ };
+
+ struct ArtifactDeploymentDescription : Traversal::ArtifactDeploymentDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ArtifactDeploymentDescription Type;
+ ArtifactDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source_pre (Type &o)
+ {
+ this->source_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_pre (Type const&);
+
+ virtual void
+ source_next (Type &o)
+ {
+ this->source_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_next (Type const&);
+
+ virtual void
+ source_post (Type &o)
+ {
+ this->source_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_post (Type const&);
+
+ virtual void
+ node (Type &o)
+ {
+ this->node (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ location_pre (Type &o)
+ {
+ this->location_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_pre (Type const&);
+
+ virtual void
+ location_next (Type &o)
+ {
+ this->location_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_next (Type const&);
+
+ virtual void
+ location_post (Type &o)
+ {
+ this->location_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_post (Type const&);
+
+ virtual void
+ execParameter_pre (Type &o)
+ {
+ this->execParameter_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_pre (Type const&);
+
+ virtual void
+ execParameter_next (Type &o)
+ {
+ this->execParameter_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_next (Type const&);
+
+ virtual void
+ execParameter_post (Type &o)
+ {
+ this->execParameter_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_post (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type &o)
+ {
+ this->deployRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type &o)
+ {
+ this->deployRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type &o)
+ {
+ this->deployRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployedResource_pre (Type &o)
+ {
+ this->deployedResource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ 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
+ id (Type &o)
+ {
+ this->id (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ id (Type const&);
+
+ protected:
+ ArtifactDeploymentDescription ();
+ };
+
+ struct MonolithicDeploymentDescription : Traversal::MonolithicDeploymentDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::MonolithicDeploymentDescription Type;
+ MonolithicDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source_pre (Type &o)
+ {
+ this->source_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_pre (Type const&);
+
+ virtual void
+ source_next (Type &o)
+ {
+ this->source_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_next (Type const&);
+
+ virtual void
+ source_post (Type &o)
+ {
+ this->source_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_post (Type const&);
+
+ virtual void
+ artifact_pre (Type &o)
+ {
+ this->artifact_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ artifact_pre (Type const&);
+
+ virtual void
+ artifact_next (Type &o)
+ {
+ this->artifact_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ artifact_next (Type const&);
+
+ virtual void
+ artifact_post (Type &o)
+ {
+ this->artifact_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ artifact_post (Type const&);
+
+ virtual void
+ execParameter_pre (Type &o)
+ {
+ this->execParameter_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_pre (Type const&);
+
+ virtual void
+ execParameter_next (Type &o)
+ {
+ this->execParameter_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_next (Type const&);
+
+ virtual void
+ execParameter_post (Type &o)
+ {
+ this->execParameter_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_post (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type &o)
+ {
+ this->deployRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type &o)
+ {
+ this->deployRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type &o)
+ {
+ this->deployRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ id (Type &o)
+ {
+ this->id (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ id (Type const&);
+
+ protected:
+ MonolithicDeploymentDescription ();
+ };
+
+ struct ResourceUsageKind : Traversal::ResourceUsageKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ ResourceUsageKind (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ protected:
+ ResourceUsageKind ();
+ };
+
+ struct InstanceResourceDeploymentDescription : Traversal::InstanceResourceDeploymentDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription Type;
+ InstanceResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ resourceUsage (Type &o)
+ {
+ this->resourceUsage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceUsage (Type const&);
+
+ virtual void
+ requirementName (Type &o)
+ {
+ this->requirementName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requirementName (Type const&);
+
+ virtual void
+ resourceName (Type &o)
+ {
+ this->resourceName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceName (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ InstanceResourceDeploymentDescription ();
+ };
+
+ struct InstanceDeploymentDescription : Traversal::InstanceDeploymentDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::InstanceDeploymentDescription Type;
+ InstanceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ node (Type &o)
+ {
+ this->node (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ source (Type &o)
+ {
+ this->source (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ implementation (Type &o)
+ {
+ this->implementation (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ deployedResource_pre (Type &o)
+ {
+ this->deployedResource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ 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)
+ {
+ this->deployedSharedResource (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployedSharedResource (Type const&);
+
+ virtual void
+ id (Type &o)
+ {
+ this->id (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ id (Type const&);
+
+ protected:
+ InstanceDeploymentDescription ();
+ };
+
+ struct CCMComponentPortKind : Traversal::CCMComponentPortKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ CCMComponentPortKind (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ protected:
+ CCMComponentPortKind ();
+ };
+
+ struct ComponentPortDescription : Traversal::ComponentPortDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentPortDescription Type;
+ ComponentPortDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ specificType (Type &o)
+ {
+ this->specificType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ specificType (Type const&);
+
+ virtual void
+ supportedType_pre (Type &o)
+ {
+ this->supportedType_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_pre (Type const&);
+
+ virtual void
+ supportedType_next (Type &o)
+ {
+ this->supportedType_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_next (Type const&);
+
+ virtual void
+ supportedType_post (Type &o)
+ {
+ this->supportedType_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_post (Type const&);
+
+ virtual void
+ provider (Type &o)
+ {
+ this->provider (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ provider (Type const&);
+
+ virtual void
+ exclusiveProvider (Type &o)
+ {
+ this->exclusiveProvider (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ exclusiveProvider (Type const&);
+
+ virtual void
+ exclusiveUser (Type &o)
+ {
+ this->exclusiveUser (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ exclusiveUser (Type const&);
+
+ virtual void
+ optional (Type &o)
+ {
+ this->optional (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ optional (Type const&);
+
+ virtual void
+ kind (Type &o)
+ {
+ this->kind (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ templateParam_pre (Type &o)
+ {
+ this->templateParam_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ templateParam_pre (Type const&);
+
+ virtual void
+ templateParam_next (Type &o)
+ {
+ this->templateParam_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ templateParam_next (Type const&);
+
+ virtual void
+ templateParam_post (Type &o)
+ {
+ this->templateParam_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ templateParam_post (Type const&);
+
+ protected:
+ ComponentPortDescription ();
+ };
+
+ struct ComponentPropertyDescription : Traversal::ComponentPropertyDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentPropertyDescription Type;
+ ComponentPropertyDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ type (Type &o)
+ {
+ this->type (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ type (Type const&);
+
+ protected:
+ ComponentPropertyDescription ();
+ };
+
+ struct ComponentExternalPortEndpoint : Traversal::ComponentExternalPortEndpoint,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentExternalPortEndpoint Type;
+ ComponentExternalPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ portName (Type &o)
+ {
+ this->portName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ portName (Type const&);
+
+ protected:
+ ComponentExternalPortEndpoint ();
+ };
+
+ struct PlanSubcomponentPortEndpoint : Traversal::PlanSubcomponentPortEndpoint,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint Type;
+ PlanSubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ portName (Type &o)
+ {
+ this->portName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ provider (Type &o)
+ {
+ this->provider (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ provider (Type const&);
+
+ virtual void
+ kind (Type &o)
+ {
+ this->kind (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ kind (Type const&);
+
+ virtual void
+ instance (Type &o)
+ {
+ this->instance (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance (Type const&);
+
+ protected:
+ PlanSubcomponentPortEndpoint ();
+ };
+
+ struct ExternalReferenceEndpoint : Traversal::ExternalReferenceEndpoint,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ExternalReferenceEndpoint Type;
+ ExternalReferenceEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ location (Type &o)
+ {
+ this->location (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location (Type const&);
+
+ virtual void
+ provider (Type &o)
+ {
+ this->provider (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ provider (Type const&);
+
+ virtual void
+ portName (Type &o)
+ {
+ this->portName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ supportedType_pre (Type &o)
+ {
+ this->supportedType_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_pre (Type const&);
+
+ virtual void
+ supportedType_next (Type &o)
+ {
+ this->supportedType_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_next (Type const&);
+
+ virtual void
+ supportedType_post (Type &o)
+ {
+ this->supportedType_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_post (Type const&);
+
+ protected:
+ ExternalReferenceEndpoint ();
+ };
+
+ struct ConnectionResourceDeploymentDescription : Traversal::ConnectionResourceDeploymentDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription Type;
+ ConnectionResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ targetName (Type &o)
+ {
+ this->targetName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ targetName (Type const&);
+
+ virtual void
+ requirementName (Type &o)
+ {
+ this->requirementName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requirementName (Type const&);
+
+ virtual void
+ resourceName (Type &o)
+ {
+ this->resourceName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceName (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ ConnectionResourceDeploymentDescription ();
+ };
+
+ struct PlanConnectionDescription : Traversal::PlanConnectionDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PlanConnectionDescription Type;
+ PlanConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source (Type &o)
+ {
+ this->source (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type &o)
+ {
+ this->deployRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type &o)
+ {
+ this->deployRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type &o)
+ {
+ this->deployRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ externalEndpoint_pre (Type &o)
+ {
+ this->externalEndpoint_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalEndpoint_pre (Type const&);
+
+ virtual void
+ externalEndpoint_next (Type &o)
+ {
+ this->externalEndpoint_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalEndpoint_next (Type const&);
+
+ virtual void
+ externalEndpoint_post (Type &o)
+ {
+ this->externalEndpoint_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalEndpoint_post (Type const&);
+
+ virtual void
+ internalEndpoint_pre (Type &o)
+ {
+ this->internalEndpoint_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ internalEndpoint_pre (Type const&);
+
+ virtual void
+ internalEndpoint_next (Type &o)
+ {
+ this->internalEndpoint_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ internalEndpoint_next (Type const&);
+
+ virtual void
+ internalEndpoint_post (Type &o)
+ {
+ this->internalEndpoint_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ internalEndpoint_post (Type const&);
+
+ virtual void
+ externalReference_pre (Type &o)
+ {
+ this->externalReference_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalReference_pre (Type const&);
+
+ virtual void
+ externalReference_next (Type &o)
+ {
+ this->externalReference_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalReference_next (Type const&);
+
+ virtual void
+ externalReference_post (Type &o)
+ {
+ this->externalReference_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalReference_post (Type const&);
+
+ virtual void
+ deployedResource_pre (Type &o)
+ {
+ this->deployedResource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ 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&);
+
+ protected:
+ PlanConnectionDescription ();
+ };
+
+ struct ImplementationDependency : Traversal::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ImplementationDependency Type;
+ ImplementationDependency (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ requiredType (Type &o)
+ {
+ this->requiredType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requiredType (Type const&);
+
+ protected:
+ ImplementationDependency ();
+ };
+
+ struct Capability : Traversal::Capability,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Capability Type;
+ Capability (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType_pre (Type &o)
+ {
+ this->resourceType_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType_pre (Type const&);
+
+ virtual void
+ resourceType_next (Type &o)
+ {
+ this->resourceType_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType_next (Type const&);
+
+ virtual void
+ resourceType_post (Type &o)
+ {
+ this->resourceType_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType_post (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ Capability ();
+ };
+
+ struct ImplementationRequirement : Traversal::ImplementationRequirement,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ImplementationRequirement Type;
+ ImplementationRequirement (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ resourceUsage (Type &o)
+ {
+ this->resourceUsage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceUsage (Type const&);
+
+ virtual void
+ resourcePort (Type &o)
+ {
+ this->resourcePort (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourcePort (Type const&);
+
+ virtual void
+ componentPort (Type &o)
+ {
+ this->componentPort (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ componentPort (Type const&);
+
+ virtual void
+ resourceType (Type &o)
+ {
+ this->resourceType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ protected:
+ ImplementationRequirement ();
+ };
+
+ struct SubcomponentPortEndpoint : Traversal::SubcomponentPortEndpoint,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::SubcomponentPortEndpoint Type;
+ SubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ portName (Type &o)
+ {
+ this->portName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ portName (Type const&);
+
+ virtual void
+ instance (Type &o)
+ {
+ this->instance (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance (Type const&);
+
+ protected:
+ SubcomponentPortEndpoint ();
+ };
+
+ struct AssemblyConnectionDescription : Traversal::AssemblyConnectionDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::AssemblyConnectionDescription Type;
+ AssemblyConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type &o)
+ {
+ this->deployRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type &o)
+ {
+ this->deployRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type &o)
+ {
+ this->deployRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ internalEndpoint_pre (Type &o)
+ {
+ this->internalEndpoint_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ internalEndpoint_pre (Type const&);
+
+ virtual void
+ internalEndpoint_next (Type &o)
+ {
+ this->internalEndpoint_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ internalEndpoint_next (Type const&);
+
+ virtual void
+ internalEndpoint_post (Type &o)
+ {
+ this->internalEndpoint_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ internalEndpoint_post (Type const&);
+
+ virtual void
+ externalEndpoint_pre (Type &o)
+ {
+ this->externalEndpoint_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalEndpoint_pre (Type const&);
+
+ virtual void
+ externalEndpoint_next (Type &o)
+ {
+ this->externalEndpoint_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalEndpoint_next (Type const&);
+
+ virtual void
+ externalEndpoint_post (Type &o)
+ {
+ this->externalEndpoint_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalEndpoint_post (Type const&);
+
+ virtual void
+ externalReference_pre (Type &o)
+ {
+ this->externalReference_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalReference_pre (Type const&);
+
+ virtual void
+ externalReference_next (Type &o)
+ {
+ this->externalReference_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalReference_next (Type const&);
+
+ virtual void
+ externalReference_post (Type &o)
+ {
+ this->externalReference_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalReference_post (Type const&);
+
+ protected:
+ AssemblyConnectionDescription ();
+ };
+
+ struct PlanLocalityKind : Traversal::PlanLocalityKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ PlanLocalityKind (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ protected:
+ PlanLocalityKind ();
+ };
+
+ struct PlanLocality : Traversal::PlanLocality,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PlanLocality Type;
+ PlanLocality (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ constraint (Type &o)
+ {
+ this->constraint (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ constraint (Type const&);
+
+ virtual void
+ constrainedInstance_pre (Type &o)
+ {
+ this->constrainedInstance_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ constrainedInstance_pre (Type const&);
+
+ virtual void
+ constrainedInstance_next (Type &o)
+ {
+ this->constrainedInstance_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ constrainedInstance_next (Type const&);
+
+ virtual void
+ constrainedInstance_post (Type &o)
+ {
+ this->constrainedInstance_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ constrainedInstance_post (Type const&);
+
+ protected:
+ PlanLocality ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // BASIC_DEPLOYMENT_DATA_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.cpp
new file mode 100644
index 00000000000..686a5e143d0
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.cpp
@@ -0,0 +1,181 @@
+// $Id$
+
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+
+#include "DAnCE/Logger/Log_Macros.h"
+#include "CCD_Handler.h"
+#include "ccd.hpp"
+#include "Property_Handler.h"
+#include "CPD_Handler.h"
+#include "ComponentPropertyDescription_Handler.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ CCD_Handler::component_interface_descr (
+ const ComponentInterfaceDescription &desc,
+ Deployment::ComponentInterfaceDescription& toconfig)
+ {
+ DANCE_TRACE("CCD_Handler::component_interface_descr");
+ if (desc.UUID_p ())
+ toconfig.UUID =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.UUID ().c_str ()));
+
+ if (desc.label_p ())
+ {
+ toconfig.label =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.label ().c_str ()));
+ }
+
+ if (desc.specificType_p ())
+ {
+ toconfig.specificType =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.specificType ().c_str ()));
+ }
+
+ ComponentInterfaceDescription::supportedType_const_iterator
+ end = desc.end_supportedType ();
+
+ CORBA::ULong pos = 0;
+ toconfig.supportedType.length (desc.count_supportedType ());
+ for (ComponentInterfaceDescription::supportedType_const_iterator s =
+ desc.begin_supportedType ();
+ s != end;
+ ++s)
+ {
+ toconfig.supportedType[pos++] = ACE_TEXT_ALWAYS_CHAR ((*s)->c_str ());
+ }
+
+ ComponentInterfaceDescription::idlFile_const_iterator
+ eidl = desc.end_idlFile ();
+ pos = 0;
+ toconfig.idlFile.length (desc.count_idlFile ());
+ for (ComponentInterfaceDescription::idlFile_const_iterator sidl=
+ desc.begin_idlFile ();
+ sidl != eidl;
+ ++sidl)
+ {
+ toconfig.idlFile [pos++] = ACE_TEXT_ALWAYS_CHAR ((*sidl)->c_str ());
+ }
+
+ ComponentInterfaceDescription::configProperty_const_iterator pend =
+ desc.end_configProperty ();
+ pos = 0;
+ toconfig.configProperty.length (desc.count_configProperty ());
+ for (ComponentInterfaceDescription::configProperty_const_iterator pstart =
+ desc.begin_configProperty ();
+ pstart != pend;
+ ++pstart)
+ {
+ Property_Handler::handle_property (*(*pstart),
+ toconfig.configProperty [pos++]);
+ }
+
+ pos = 0;
+ toconfig.port.length (desc.count_port ());
+ for (ComponentInterfaceDescription::port_const_iterator
+ port (desc.begin_port ());
+ port != desc.end_port ();
+ ++port)
+ {
+ CPD_Handler::handle_component_port_description (*(*port),
+ toconfig.port[pos++]);
+ }
+
+ pos = 0;
+ CORBA::ULong len = desc.count_property ();
+ toconfig.property.length ( len );
+ for(ComponentInterfaceDescription::property_const_iterator
+ prop (desc.begin_property());
+ prop != desc.end_property();
+ prop++)
+ {
+ ComponentPropertyDescription_Handler::component_property_description (*(*prop),
+ toconfig.property[pos++]);
+ }
+
+ pos = 0;
+ toconfig.infoProperty.length (desc.count_infoProperty ());
+ for ( ComponentInterfaceDescription::infoProperty_const_iterator
+ infoProp (desc.begin_infoProperty());
+ infoProp != desc.end_infoProperty();
+ infoProp++)
+ {
+ Property_Handler::handle_property (*(*infoProp),
+ toconfig.infoProperty[pos]);
+ }
+ }
+
+ ComponentInterfaceDescription
+ CCD_Handler::component_interface_descr (
+ const ::Deployment::ComponentInterfaceDescription& src)
+ {
+ DANCE_TRACE("CCD_Handler::component_interface_descr - reverse");
+ ComponentInterfaceDescription cid;
+
+ //Load up the basic string members
+ XMLSchema::string< ACE_TCHAR > uuid (ACE_TEXT_CHAR_TO_TCHAR (src.UUID));
+ XMLSchema::string< ACE_TCHAR > label (ACE_TEXT_CHAR_TO_TCHAR (src.label));
+ XMLSchema::string< ACE_TCHAR > specifict (ACE_TEXT_CHAR_TO_TCHAR (src.specificType));
+
+ //Then put them in the CID
+ cid.UUID (uuid);
+ cid.label (label);
+ cid.specificType (specifict);
+
+ //Get the supported type(s) and load them into cid
+ ::CORBA::ULong total = src.supportedType.length ();
+ for (size_t i = 0; i < total; ++i)
+ {
+ XMLSchema::string< ACE_TCHAR > curr (ACE_TEXT_CHAR_TO_TCHAR (src.supportedType[i]));
+ //cid.add_supportedType (new XMLSchema::string< ACE_TCHAR > (curr));
+ }
+
+ //Get the idlFile(s) and store them into the cid
+ total = src.idlFile.length ();
+ for (size_t j = 0; j < total; ++j)
+ {
+ XMLSchema::string< ACE_TCHAR > curr (ACE_TEXT_CHAR_TO_TCHAR (src.idlFile[j]));
+ //cid.add_idlFile (curr);
+ }
+
+ //Get the configProperty(ies) and store them into the cid
+ total = src.configProperty.length ();
+ for (size_t k = 0; k < total; ++k)
+ {
+ //cid.add_configProperty (Property_Handler::get_property (src.configProperty[k]));
+ }
+
+ //Same drill for the component port description(s)
+ total = src.port.length ();
+ for (size_t l = 0; l < total; ++l)
+ {
+ //cid.add_port (CPD_Handler::component_port_description (src.port[l]));
+ }
+
+
+ //Load up the property field
+ total = src.property.length();
+ for(size_t m = 0;
+ m < total;
+ m++)
+ {
+ //cid.add_property(ComponentPropertyDescription_Handler::component_property_description (src.property[m]));
+ }
+
+ //Load up the infoProperty(s)
+ total = src.infoProperty.length();
+ for(size_t n = 0;
+ n < total;
+ n++)
+ {
+ //cid.add_infoProperty(Property_Handler::get_property (src.infoProperty[n]));
+ }
+
+ return cid;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.h
new file mode 100644
index 00000000000..b3e8292f038
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CCD_Handler.h
@@ -0,0 +1,57 @@
+//================================================
+/**
+* @file CCD_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_CCD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_CCD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+struct ComponentInterfaceDescription;
+}
+
+namespace CIAO
+{
+namespace Config_Handlers
+{
+class ComponentInterfaceDescription;
+
+/*
+* @class CCD_Handler
+*
+* @brief Handler class for <ComponentInterfaceDescription> types.
+*
+* This class is named CCD_Handler but actually fills
+* <ComponentInterfaceDescription>. Why is this confusion? We
+* want to maintain the correlation between the XSD file and the
+* actual datatype. The file name corresponds to the XSD file but
+* the data type being filled in is of type
+* <ComponentInterfaceDescription>
+*/
+class Config_Handlers_Export CCD_Handler
+{
+public:
+static void component_interface_descr (const ComponentInterfaceDescription &src,
+::Deployment::ComponentInterfaceDescription& dest);
+static ComponentInterfaceDescription
+component_interface_descr (const ::Deployment::ComponentInterfaceDescription& src);
+
+};
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* CID_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.cpp
new file mode 100644
index 00000000000..bd29956181d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.cpp
@@ -0,0 +1,51 @@
+// $Id$
+
+#include "CEPE_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ CEPE_Handler::external_port_endpoints (
+ const PlanConnectionDescription &src,
+ ::Deployment::ComponentExternalPortEndpoints &dest)
+ {
+ DANCE_TRACE("CEOE_Handler::external_port_endpoints");
+ PlanConnectionDescription::externalEndpoint_const_iterator eeci_e =
+ src.end_externalEndpoint ();
+
+ CORBA::ULong pos = 0;
+ dest.length (src.count_externalEndpoint ());
+ for (PlanConnectionDescription::externalEndpoint_const_iterator eeci_b =
+ src.begin_externalEndpoint ();
+ eeci_b != eeci_e;
+ ++eeci_b)
+ {
+ CEPE_Handler::handle_external_port_endpoint (*(*eeci_b),
+ dest[pos++]);
+ }
+ }
+
+ void
+ CEPE_Handler::handle_external_port_endpoint (
+ const ComponentExternalPortEndpoint &src,
+ ::Deployment::ComponentExternalPortEndpoint &dest)
+ {
+ DANCE_TRACE("CEOE_Handler::external_port_endpoint");
+ dest.portName = ACE_TEXT_ALWAYS_CHAR (src.portName ().c_str ());
+ }
+
+ ComponentExternalPortEndpoint
+ CEPE_Handler::external_port_endpoint (
+ const ::Deployment::ComponentExternalPortEndpoint &src)
+ {
+ DANCE_TRACE("CEOE_Handler::external_port_endpoint - reverse");
+ //MAJO Unfinished
+ XMLSchema::string< ACE_TCHAR > portname (ACE_TEXT_CHAR_TO_TCHAR (src.portName));
+ return ComponentExternalPortEndpoint (portname);
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h
new file mode 100644
index 00000000000..b3b0938b8c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h
@@ -0,0 +1,67 @@
+//==============================================================
+/**
+ * @file CEPE_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_CEPE_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_CEPE_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Common_Export.h"
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ class ComponentExternalPortEndpoints;
+ struct ComponentExternalPortEndpoint;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class PlanConnectionDescription;
+ class ComponentExternalPortEndpoint;
+
+ /*
+ * @class CEPE_Handler
+ *
+ * @brief Handler class for <ComponentExternalPortEndpoint> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC ComponentExternalPortEndpoint objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Common_Export CEPE_Handler
+ {
+ public:
+ static void external_port_endpoints (const PlanConnectionDescription &src,
+ ::Deployment::ComponentExternalPortEndpoints &dest);
+
+ static ComponentExternalPortEndpoint
+ external_port_endpoint (const ::Deployment::ComponentExternalPortEndpoint &src);
+
+ static void handle_external_port_endpoint (const ComponentExternalPortEndpoint &src,
+ ::Deployment::ComponentExternalPortEndpoint &dest);
+ };
+
+ typedef Sequence_Handler < ComponentExternalPortEndpoint,
+ ::Deployment::ComponentExternalPortEndpoints,
+ ::Deployment::ComponentExternalPortEndpoint,
+ CEPE_Handler::handle_external_port_endpoint > CEPE_Functor;
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_CEPE_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.cpp
new file mode 100644
index 00000000000..70fbd104390
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.cpp
@@ -0,0 +1,152 @@
+// $Id$
+
+#include "CPD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ CPD_Handler::handle_component_port_description (
+ const ComponentPortDescription& desc,
+ Deployment::ComponentPortDescription& toconfig)
+ {
+ DANCE_TRACE("CPD_Handler::component_port_description");
+ toconfig.name =
+ ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ());
+
+ if (desc.specificType_p ())
+ toconfig.specificType =
+ ACE_TEXT_ALWAYS_CHAR (desc.specificType ().c_str ());
+
+ toconfig.supportedType.length (desc.count_supportedType ());
+ std::for_each (desc.begin_supportedType (),
+ desc.end_supportedType (),
+ String_Seq_Functor (toconfig.supportedType));
+
+
+ switch (desc.kind ().integral ())
+ {
+ case CCMComponentPortKind::Facet_l:
+ toconfig.kind = Deployment::Facet;
+ break;
+
+ case CCMComponentPortKind::SimplexReceptacle_l:
+ toconfig.kind = Deployment::SimplexReceptacle;
+ break;
+
+ case CCMComponentPortKind::MultiplexReceptacle_l:
+ toconfig.kind = Deployment::MultiplexReceptacle;
+ break;
+
+ case CCMComponentPortKind::EventEmitter_l:
+ toconfig.kind = Deployment::EventEmitter;
+ break;
+
+ case CCMComponentPortKind::EventPublisher_l:
+ toconfig.kind = Deployment::EventPublisher;
+ break;
+
+ case CCMComponentPortKind::EventConsumer_l:
+ toconfig.kind = Deployment::EventConsumer;
+ break;
+
+ default:
+ ACE_ERROR ((LM_ERROR, "Invalid port type in connection %s\n",
+ desc.name ().c_str ()));
+ throw 1;
+ }
+
+ /* @@BUG: We need to consider how to handle booleans. */
+ toconfig.provider = desc.provider ();
+ toconfig.exclusiveProvider = desc.exclusiveProvider ();
+ toconfig.exclusiveUser = desc.exclusiveUser ();
+ toconfig.optional = desc.optional ();
+ }
+
+ ComponentPortDescription
+ CPD_Handler::component_port_description (
+ const Deployment::ComponentPortDescription& src)
+ {
+ DANCE_TRACE("CPD_Handler::component_port_description - reverse");
+ ::XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+ ::XMLSchema::string< ACE_TCHAR > stype (ACE_TEXT_CHAR_TO_TCHAR (src.specificType));
+
+ ::XMLSchema::string< ACE_TCHAR > tval (ACE_TEXT ("true"));
+ ::XMLSchema::string< ACE_TCHAR > fval (ACE_TEXT ("false"));
+ XMLSchema::boolean provider;
+ XMLSchema::boolean exclusiveProvider;
+ XMLSchema::boolean exclusiveUser;
+ XMLSchema::boolean optional;
+
+ if (src.provider)
+ provider = true;
+ else
+ provider = false;
+
+ if (src.exclusiveUser)
+ exclusiveUser = true;
+ else
+ provider = false;
+
+ if (src.exclusiveProvider)
+ exclusiveProvider = true;
+ else
+ provider = false;
+
+ if (src.optional)
+ optional = true;
+ else
+ provider = false;
+
+ ComponentPortDescription cpd (name,
+ provider,
+ exclusiveProvider,
+ exclusiveUser,
+ optional,
+ CCMComponentPortKind::Facet);
+
+ switch (src.kind)
+ {
+ case ::Deployment::Facet:
+ cpd.kind (CCMComponentPortKind::Facet);
+ break;
+
+ case ::Deployment::SimplexReceptacle:
+ cpd.kind (CCMComponentPortKind::SimplexReceptacle);
+ break;
+
+ case ::Deployment::MultiplexReceptacle:
+ cpd.kind (CCMComponentPortKind::MultiplexReceptacle);
+ break;
+
+ case ::Deployment::EventEmitter:
+ cpd.kind (CCMComponentPortKind::EventEmitter);
+ break;
+
+ case ::Deployment::EventPublisher:
+ cpd.kind (CCMComponentPortKind::EventPublisher);
+ break;
+
+ case ::Deployment::EventConsumer:
+ cpd.kind (CCMComponentPortKind::EventConsumer);
+ break;
+
+ default:
+ ACE_ERROR ((LM_ERROR, ACE_TEXT("Invalid port kind in connection %C\n"),
+ name.c_str ()));
+ }
+
+ for (CORBA::ULong i = 0; i < src.supportedType.length (); ++i)
+ {
+ //cpd.add_supportedType (XMLSchema::string< ACE_TCHAR > ((src.supportedType[i])));
+ }
+
+ return cpd;
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.h
new file mode 100644
index 00000000000..445d2c5f329
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CPD_Handler.h
@@ -0,0 +1,68 @@
+//================================================
+/**
+ * @file CPD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_CPD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_CPD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Common_Export.h"
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct ComponentPortDescription;
+ class ComponentPortDescriptions;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentPortDescription;
+ /*
+ * @class CPD_Handler
+ *
+ * @brief Handler class for <CCMComponentPortDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+
+ class Config_Handlers_Common_Export CPD_Handler
+ {
+
+ public:
+ /// Maps the values from the XSC object
+ /// <ComponentInterfaceDescription> to the CORBA IDL type
+ /// <Deployment::ComponentInterfaceDescription>.
+ static void handle_component_port_description (const ComponentPortDescription &desc,
+ ::Deployment::ComponentPortDescription &toconfig);
+
+ static ComponentPortDescription
+ component_port_description (const Deployment::ComponentPortDescription& src);
+ };
+
+ typedef Sequence_Handler < ComponentPortDescription,
+ ::Deployment::ComponentPortDescriptions,
+ ::Deployment::ComponentPortDescription,
+ CPD_Handler::handle_component_port_description > CPD_Functor;
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_CPD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.cpp
new file mode 100644
index 00000000000..180213a21d5
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.cpp
@@ -0,0 +1,66 @@
+// $Id$
+
+#include "CRDD_Handler.h"
+#include "Any_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "Property_Handler.h"
+
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ CRDD_Handler::CRDD_Handler (void)
+ {
+ }
+
+ CRDD_Handler::~CRDD_Handler (void)
+ {
+ }
+
+ ///This method takes a <Deployment::ConnectionResourceDeploymentDescription>
+ ///and maps the values from the passed in XSC
+ ///ConnectionResourceDeploymentDescription to its members.
+ void CRDD_Handler::get_ConnectionResourceDeploymentDescription (Deployment::ConnectionResourceDeploymentDescription& toconfig,
+ const ConnectionResourceDeploymentDescription& desc)
+ {
+ DANCE_TRACE("CRDD_Handler::get_ConnectionResourceDD");
+
+ toconfig.targetName = ACE_TEXT_ALWAYS_CHAR ( desc.targetName ().c_str ());
+ toconfig.requirementName = ACE_TEXT_ALWAYS_CHAR ( desc.requirementName ().c_str ());
+ toconfig.resourceName = ACE_TEXT_ALWAYS_CHAR ( desc.resourceName ().c_str ());
+
+ std::for_each (desc.begin_property (),
+ desc.end_property (),
+ Property_Functor (toconfig.property));
+ }
+
+ ConnectionResourceDeploymentDescription
+ CRDD_Handler::connection_resource_depl_desc (
+ const ::Deployment::ConnectionResourceDeploymentDescription& src)
+ {
+ DANCE_TRACE("CRDD_Handler::get_ConnectionResourceDeploymentDescription- reverse");
+ XMLSchema::string< ACE_TCHAR > tname (ACE_TEXT_CHAR_TO_TCHAR (src.targetName));
+ XMLSchema::string< ACE_TCHAR > reqname (ACE_TEXT_CHAR_TO_TCHAR(src.requirementName));
+ XMLSchema::string <ACE_TCHAR> resname (ACE_TEXT_CHAR_TO_TCHAR (src.resourceName));
+
+ ConnectionResourceDeploymentDescription crdd (tname,
+ reqname,
+ resname);
+
+ for (CORBA::ULong i = 0;
+ i != src.property.length ();
+ ++i)
+ {
+ //crdd.add_property (Property_Handler::get_property (src.property[i]));
+ }
+
+
+ return crdd;
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.h
new file mode 100644
index 00000000000..8f5c964aab4
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/CRDD_Handler.h
@@ -0,0 +1,67 @@
+//==============================================================
+/**
+ * @file CRDD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_CRDD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_CRDD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct ConnectionResourceDeploymentDescription;
+}
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+
+ class ConnectionResourceDeploymentDescription;
+
+ /*
+ * @class CRDD_Handler
+ *
+ * @brief Handler class for <ConnectionResourceDeploymentDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC ConnectionResourceDeploymentDescription objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Export CRDD_Handler{
+
+ public:
+
+ CRDD_Handler (void);
+ virtual ~CRDD_Handler (void);
+
+ ///This method takes a <Deployment::ConnectionResourceDeploymentDescription>
+ ///and maps the values from the passed in XSC
+ ///ConnectionResourceDeploymentDescription to its members.
+ void get_ConnectionResourceDeploymentDescription (Deployment::ConnectionResourceDeploymentDescription& toconfig,
+ const ConnectionResourceDeploymentDescription& desc);
+
+ static ConnectionResourceDeploymentDescription
+ connection_resource_depl_desc (
+ const ::Deployment::ConnectionResourceDeploymentDescription& src);
+
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_CRDD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Common.h b/modules/CIAO/DAnCE/Config_Handlers/Common.h
new file mode 100644
index 00000000000..dec8f4b497a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Common.h
@@ -0,0 +1,46 @@
+// $Id$
+/**
+ * @file Common.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Some common definitions for all config_handlers.
+ */
+#ifndef CONFIG_HANDLERS_COMMON_H
+#define CONFIG_HANDLERS_COMMON_H
+#include <string>
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ /**
+ * @class Config_Error
+ * @brief Exception to communicate a config_handlers error
+ */
+ class Config_Error
+ {
+ public:
+ Config_Error (const std::basic_string<ACE_TCHAR> &name,
+ const std::basic_string<ACE_TCHAR> &error) :
+ name_ (name),
+ error_ (error)
+ {};
+
+ void add_name (const std::basic_string<ACE_TCHAR> &name)
+ {
+ name_ = name + ACE_TEXT (":") + name_;
+ }
+
+ /// Some identifying information about the element that
+ /// caused the error
+ std::basic_string<ACE_TCHAR> name_;
+
+ /// A human readable error message
+ std::basic_string<ACE_TCHAR> error_;
+
+ };
+ }
+}
+#endif /* CONFIG_HANDLERS_COMMON_H */
+
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp
new file mode 100644
index 00000000000..236f3de946b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp
@@ -0,0 +1,41 @@
+//$Id$
+
+#include "ComponentPropertyDescription_Handler.h"
+#include "DataType_Handler.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ ComponentPropertyDescription_Handler::component_property_description (
+ const ComponentPropertyDescription& desc,
+ ::Deployment::ComponentPropertyDescription& toconfig)
+ {
+ DANCE_TRACE("ComponentPropertyDescription_Handler::component_property_description");
+ toconfig.name = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ()));
+
+ // Delegate the DataType to the
+ // DataType_Handler.
+
+ // @@ There is a lurking bug here.
+ //#if 0
+ CORBA::TypeCode_ptr tcptr = toconfig.type.in ();
+ DataType_Handler::data_type (desc.type (), tcptr);
+ //#endif /*if 0*/
+ }
+
+ ComponentPropertyDescription
+ ComponentPropertyDescription_Handler::component_property_description (
+ const ::Deployment::ComponentPropertyDescription &src)
+ {
+ DANCE_TRACE("ComponentPropertyDescription_Handler::component_property_description - reverse");
+ XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+ DataType dt (DataType_Handler::data_type (src.type));
+ ComponentPropertyDescription cpd (name,dt);
+ return cpd;
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h
new file mode 100644
index 00000000000..f87edc7fcea
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h
@@ -0,0 +1,61 @@
+//==============================================================
+/**
+* @file ComponentPropertyDescription_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_ComponentPropertyDescription_Handler_H
+#define CIAO_CONFIG_HANDLERS_ComponentPropertyDescription_Handler_H
+#include /**/ "ace/pre.h"
+
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+struct ComponentPropertyDescription;
+}
+
+namespace CIAO
+{
+namespace Config_Handlers
+{
+class ComponentPropertyDescription;
+
+/*
+* @class ComponentPropertyDescription_Handler
+*
+* @brief Handler class for <ComponentPortDescription> types.
+*
+* This class defines handler methods to map values from
+* XSC objects, parsed from the descriptor files, to the
+* corresponding CORBA IDL type for the schema element.
+*
+*/
+class Config_Handlers_Export ComponentPropertyDescription_Handler
+{
+public:
+
+/// This method maps the values from the XSC object
+/// <ComponentPropertyDescription> to the CORBA IDL type
+/// <Deployment::ComponentPropertyDescription>.
+static void component_property_description (
+const ComponentPropertyDescription& desc,
+::Deployment::ComponentPropertyDescription& toconfig);
+static ComponentPropertyDescription
+component_property_description (
+const ::Deployment::ComponentPropertyDescription &src);
+};
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_ComponentPropertyDescription_Handler_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc b/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc
new file mode 100644
index 00000000000..4d578c4a2b2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc
@@ -0,0 +1,126 @@
+//$Id$
+
+project (XSC_XML_Generation) : xscdefaults {
+ requires += xsc
+
+ xscflags += --cxx-banner-file $(DANCE_ROOT)/docs/schema/xsc-banner.cpp
+ xscflags += --cxx-header-banner-file $(DANCE_ROOT)/docs/schema/xsc-banner.h
+ xscflags += --cxx-export-symbol XSC_XML_Handlers_Export
+ xscflags += --cxx-namespace-regex "%.*Deployment.*%CIAO/Config_Handlers%" //<%quote%>
+ xscflags += --cxx-export-header XSC_XML_Handlers_Export.h
+ xscflags += --search-path "$(DANCE_ROOT)/docs/schema"
+
+ custom_only = 1
+
+ XSC_Files {
+ gendir = .
+ $(CIAO_ROOT)/docs/schema/Basic_Deployment_Data.xsd
+ $(CIAO_ROOT)/docs/schema/Deployment.xsd
+ $(CIAO_ROOT)/docs/schema/XMI.xsd
+ $(CIAO_ROOT)/docs/schema/ccd.xsd
+ $(CIAO_ROOT)/docs/schema/cdd.xsd
+ $(CIAO_ROOT)/docs/schema/cdp.xsd
+ $(CIAO_ROOT)/docs/schema/cid.xsd
+ $(CIAO_ROOT)/docs/schema/cpd.xsd
+ $(CIAO_ROOT)/docs/schema/iad.xsd
+ $(CIAO_ROOT)/docs/schema/pcd.xsd
+ $(CIAO_ROOT)/docs/schema/toplevel.xsd
+ }
+
+ Source_Files {
+ }
+}
+
+project (XSC_XML_Handlers) : acelib, xerces, dance_lib, ciao_xml_utils {
+ sharedname += XSC_XML_Handlers
+ dynamicflags = XSC_XML_HANDLERS_BUILD_DLL
+ macros += XML_USE_PTHREADS
+ includes += $(DANCE_ROOT)/Config_Handlers
+ after += XSC_XML_Generation
+
+ Source_Files {
+ XMI.cpp
+ Deployment.cpp
+ ccd.cpp
+ cdd.cpp
+ cdp.cpp
+ cid.cpp
+ cpd.cpp
+ iad.cpp
+ pcd.cpp
+ toplevel.cpp
+ Basic_Deployment_Data.cpp
+ XML_Typedefs.cpp
+ }
+
+ Header_Files {
+ XSC_XML_Handlers_Export.h
+ XML_Typedefs.h
+ }
+
+ verbatim(gnuace, macros) {
+ override no_hidden_visibility = 1
+ }
+
+}
+
+project (XSC_Config_Handlers) : dance_deployment_stub, dance_config_handlers_base, ciao_lib, dance, dance_logger {
+ after += XSC_DynAny_Handler \
+ XSC_Config_Handlers_Common
+
+ sharedname = XSC_Config_Handlers
+ dynamicflags = CONFIG_HANDLERS_BUILD_DLL
+ libs += CIAO_XML_Utils \
+ XSC_XML_Handlers \
+ XSC_DynAny_Handler \
+ XSC_Config_Handlers_Common
+
+ Source_Files {
+ DP_Handler.cpp
+ CCD_Handler.cpp
+ ComponentPropertyDescription_Handler.cpp
+ MDD_Handler.cpp
+ ComponentPropertyDescription_Handler.cpp
+ MDD_Handler.cpp
+ PSPE_Handler.cpp
+ CRDD_Handler.cpp
+ IDD_Handler.cpp
+ ADD_Handler.cpp
+ ComponentPropertyDescription_Handler.cpp
+ RDD_Handler.cpp
+ ID_Handler.cpp
+ PL_Handler.cpp
+ XML_File_Intf.cpp
+ IDREF_Base.cpp
+ Dump_Obj.cpp
+ PCD_Handler.cpp
+ IRDD_Handler.cpp
+ DD_Handler.cpp
+ DnC_Dump.cpp
+ }
+
+ Header_Files {
+ Config_Handlers_Export.h
+ }
+
+}
+
+project (XSC_Config_Handlers_Common) : dance_deployment_stub, dance_config_handlers_base, ciao_lib, dance {
+ after += XSC_DynAny_Handler
+ sharedname = XSC_Config_Handlers_Common
+ dynamicflags = CONFIG_HANDLERS_COMMON_BUILD_DLL
+
+ libs += XSC_DynAny_Handler
+
+ Source_Files {
+ ERE_Handler.cpp
+ Req_Handler.cpp
+ DataType_Handler.cpp
+ Property_Handler.cpp
+ SatisfierProperty_Handler.cpp
+ CPD_Handler.cpp
+ CEPE_Handler.cpp
+ Any_Handler.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Common_Export.h b/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Common_Export.h
new file mode 100644
index 00000000000..f1583c7e71d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Common_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s Config_Handlers_Common
+// ------------------------------
+#ifndef CONFIG_HANDLERS_COMMON_EXPORT_H
+#define CONFIG_HANDLERS_COMMON_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CONFIG_HANDLERS_COMMON_HAS_DLL)
+# define CONFIG_HANDLERS_COMMON_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CONFIG_HANDLERS_COMMON_HAS_DLL */
+
+#if !defined (CONFIG_HANDLERS_COMMON_HAS_DLL)
+# define CONFIG_HANDLERS_COMMON_HAS_DLL 1
+#endif /* ! CONFIG_HANDLERS_COMMON_HAS_DLL */
+
+#if defined (CONFIG_HANDLERS_COMMON_HAS_DLL) && (CONFIG_HANDLERS_COMMON_HAS_DLL == 1)
+# if defined (CONFIG_HANDLERS_COMMON_BUILD_DLL)
+# define Config_Handlers_Common_Export ACE_Proper_Export_Flag
+# define CONFIG_HANDLERS_COMMON_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONFIG_HANDLERS_COMMON_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONFIG_HANDLERS_COMMON_BUILD_DLL */
+# define Config_Handlers_Common_Export ACE_Proper_Import_Flag
+# define CONFIG_HANDLERS_COMMON_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONFIG_HANDLERS_COMMON_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONFIG_HANDLERS_COMMON_BUILD_DLL */
+#else /* CONFIG_HANDLERS_COMMON_HAS_DLL == 1 */
+# define Config_Handlers_Common_Export
+# define CONFIG_HANDLERS_COMMON_SINGLETON_DECLARATION(T)
+# define CONFIG_HANDLERS_COMMON_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONFIG_HANDLERS_COMMON_HAS_DLL == 1 */
+
+// Set CONFIG_HANDLERS_COMMON_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONFIG_HANDLERS_COMMON_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONFIG_HANDLERS_COMMON_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONFIG_HANDLERS_COMMON_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONFIG_HANDLERS_COMMON_NTRACE */
+
+#if (CONFIG_HANDLERS_COMMON_NTRACE == 1)
+# define CONFIG_HANDLERS_COMMON_TRACE(X)
+#else /* (CONFIG_HANDLERS_COMMON_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONFIG_HANDLERS_COMMON_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONFIG_HANDLERS_COMMON_NTRACE == 1) */
+
+#endif /* CONFIG_HANDLERS_COMMON_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Export.h b/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Export.h
new file mode 100644
index 00000000000..64dec8bdfa5
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Config_Handlers_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s Config_Handlers
+// ------------------------------
+#ifndef CONFIG_HANDLERS_EXPORT_H
+#define CONFIG_HANDLERS_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CONFIG_HANDLERS_HAS_DLL)
+# define CONFIG_HANDLERS_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CONFIG_HANDLERS_HAS_DLL */
+
+#if !defined (CONFIG_HANDLERS_HAS_DLL)
+# define CONFIG_HANDLERS_HAS_DLL 1
+#endif /* ! CONFIG_HANDLERS_HAS_DLL */
+
+#if defined (CONFIG_HANDLERS_HAS_DLL) && (CONFIG_HANDLERS_HAS_DLL == 1)
+# if defined (CONFIG_HANDLERS_BUILD_DLL)
+# define Config_Handlers_Export ACE_Proper_Export_Flag
+# define CONFIG_HANDLERS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONFIG_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONFIG_HANDLERS_BUILD_DLL */
+# define Config_Handlers_Export ACE_Proper_Import_Flag
+# define CONFIG_HANDLERS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONFIG_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONFIG_HANDLERS_BUILD_DLL */
+#else /* CONFIG_HANDLERS_HAS_DLL == 1 */
+# define Config_Handlers_Export
+# define CONFIG_HANDLERS_SINGLETON_DECLARATION(T)
+# define CONFIG_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONFIG_HANDLERS_HAS_DLL == 1 */
+
+// Set CONFIG_HANDLERS_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONFIG_HANDLERS_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONFIG_HANDLERS_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONFIG_HANDLERS_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONFIG_HANDLERS_NTRACE */
+
+#if (CONFIG_HANDLERS_NTRACE == 1)
+# define CONFIG_HANDLERS_TRACE(X)
+#else /* (CONFIG_HANDLERS_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONFIG_HANDLERS_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONFIG_HANDLERS_NTRACE == 1) */
+
+#endif /* CONFIG_HANDLERS_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DD_Handler.cpp
new file mode 100644
index 00000000000..81ec2526fc1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DD_Handler.cpp
@@ -0,0 +1,212 @@
+// $Id$
+
+#include "XML_Typedefs.h"
+#include "SatisfierProperty_Handler.h"
+#include "DD_Handler.h"
+#include "Any_Handler.h"
+#include "Deployment.hpp"
+#include "DAnCE/Deployment/Deployment_TargetDataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+using namespace std;
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ DD_Handler::DD_Handler (const ACE_TCHAR *file) :
+ idl_domain_(0),
+ domain_ (0),
+ retval_ (false)
+ {
+ DANCE_TRACE("DP_PCD_Handler::constructor");
+
+ XERCES_CPP_NAMESPACE::DOMDocument *dom =
+ XML_Helper::XML_HELPER.create_dom (file);
+
+ if (!dom)
+ throw DD_Handler::NoDomain ();
+
+ Domain *dm =
+ new Domain (reader::domain (dom));
+
+ // Domain d = domain (dom);
+
+ this->domain_.reset (dm);
+
+ if (!this->build_domain ())
+ throw NoDomain ();
+ }
+
+ DD_Handler::DD_Handler (Domain *dmn):
+ idl_domain_(0),
+ domain_(dmn),
+ retval_(false)
+ {
+ DANCE_TRACE("DP_PCD_Handler::constructor - Domain");
+ if(!this->build_domain ())
+ throw NoDomain ();
+ }
+
+ DD_Handler::DD_Handler (::Deployment::Domain *dmn):
+ idl_domain_(dmn),
+ domain_(0),
+ retval_(false)
+ {
+ if(!this->build_xsc())
+ throw NoDomain ();
+ }
+
+ DD_Handler::~DD_Handler (void)
+ {
+ }
+
+ bool
+ DD_Handler::build_domain ()
+ {
+ DANCE_TRACE("DP_PCD_Handler::build_domain");
+ this->idl_domain_.reset ( new ::Deployment::Domain );
+
+ // Read in the name
+ // Check if the label is there or not
+ if (domain_->label_p ())
+ this->idl_domain_->label =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (domain_->label ().c_str ()));
+
+ if (domain_->UUID_p ())
+ this->idl_domain_->UUID =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (domain_->UUID ().c_str ()));
+
+ CORBA::ULong len = domain_->count_node ();
+ this->idl_domain_->node.length (len);
+
+ //Resource _resource;
+ int i =0;
+ for (Domain::node_const_iterator iter = domain_->begin_node ();
+ iter != domain_->end_node ();
+ ++iter,++i
+ )
+ {
+ // Node* thisNode = (Node*)iter;
+ this->idl_domain_->node[i].name =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR ((*iter)->name ().c_str ()));
+
+ if ((*iter)->label_p ())
+ this->idl_domain_->node[i].label =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR ((*iter)->label ().c_str ()));
+
+ // length is hard-coded for now ...
+ // here iterate over the resources ...
+ CORBA::ULong res_len = (*iter)->count_resource ();
+ this->idl_domain_->node[i].resource.length (res_len);
+
+ int res_id=0;
+ // FOR EACH RESOURCE ....
+ for (Node::resource_const_iterator res_iter = (*iter)->begin_resource ();
+ res_iter != (*iter)->end_resource ();
+ res_iter++, res_id++)
+ {
+
+ this->idl_domain_->node[i].resource[res_id].name =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR ((*res_iter)->name ().c_str ()));
+
+ CORBA::ULong resource_type_len = (*res_iter)->count_resourceType ();
+ this->idl_domain_->node[i].resource[res_id].resourceType.length (resource_type_len);
+
+ int res_type_id =0;
+
+ // FOR EACH RESOURCE TYPE
+ for (Resource::resourceType_const_iterator res_type_iter =
+ (*res_iter)->begin_resourceType ();
+ res_type_iter != (*res_iter)->end_resourceType ();
+ res_type_iter++, res_type_id++)
+ {
+ this->idl_domain_->node[i].resource[res_id].resourceType[res_type_id] =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR ((*res_type_iter)->c_str ()));
+ }
+
+ CORBA::ULong property_len = (*res_iter)->count_property ();
+ this->idl_domain_->node[i].resource[res_id].property.length (property_len);
+
+ // int property_id =0;
+
+ std::for_each ((*res_iter)->begin_property (),
+ (*res_iter)->end_property (),
+ SatisfierProperty_Functor (this->idl_domain_->node[i].resource[res_id].property));
+
+ /*
+ //FOR EACH PROPERTY
+ for (Resource::property_const_iterator property_iter =
+ (*res_iter)->begin_property ();
+ property_iter != (*res_iter)->end_property ();
+ property_iter++, property_id++)
+ {
+ this->idl_domain_->node[i].resource[res_id].property[property_id ].name =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (property_iter->name ().c_str ()));
+
+
+ this->idl_domain_->node[i].resource[res_id].property[property_id].kind =
+ ::Deployment::Quantity;
+
+ Any the_any = property_iter->value ();
+ CORBA::Any a_corba_any;
+ Any_Handler::extract_into_any (the_any , a_corba_any);
+ this->idl_domain_->node[i].resource[res_id].property[property_id].value
+ = a_corba_any;
+ }
+ */
+ }
+ }
+
+ return true;
+
+ }
+
+ bool
+ DD_Handler::build_xsc ()
+ {
+ return true;
+ }
+
+ ::Deployment::Domain const *
+ DD_Handler::domain_idl () const
+ {
+ if(!this->idl_domain_.get())
+ throw NoDomain ();
+
+ //else
+ return this->idl_domain_.get();
+ }
+
+ ::Deployment::Domain *
+ DD_Handler::domain_idl ()
+ {
+ if(!this->idl_domain_.get())
+ throw NoDomain();
+
+ //else
+ return this->idl_domain_.release();
+ }
+
+ Domain const *
+ DD_Handler::domain_xsc () const
+ {
+ if(!this->domain_.get())
+ throw NoDomain ();
+
+ //else
+ return this->domain_.get();
+ }
+
+ Domain *
+ DD_Handler::domain_xsc ()
+ {
+ if(!this->domain_.get())
+ throw NoDomain ();
+
+ //else
+ return this->domain_.release();
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DD_Handler.h
new file mode 100644
index 00000000000..f3a9e0c60c9
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DD_Handler.h
@@ -0,0 +1,114 @@
+// $Id$
+//======================================
+/**
+* @file DD_Handler.h
+*
+* @brief Contains the Domain Descriptior
+* Handler
+*
+* @author Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+*
+*/
+//======================================
+
+#ifndef CIAO_CONFIG_HANDLERS_DD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+#include "ace/Auto_Ptr.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+struct Domain;
+}
+
+namespace CIAO
+{
+namespace Config_Handlers
+{
+class Domain;
+
+/*
+* @class DD_Handler
+*
+* @brief Handler class for <Domain>
+*/
+
+class Config_Handlers_Export DD_Handler
+{
+public:
+class NoDomain {};
+
+/**
+* @param file The file to be read
+*/
+DD_Handler (const ACE_TCHAR *file);
+
+/**
+* @param dmn The Domain structure
+*/
+DD_Handler(Domain *dmn);
+
+/**
+* @param dmn The Deployment::Domain structure
+*/
+DD_Handler(::Deployment::Domain *dmn);
+
+/**
+*/
+~DD_Handler (void);
+
+/**
+* @brief Returns the const IDL domain
+* @return Domain* the IDL domain pointer
+*/
+ ::Deployment::Domain const *domain_idl (void) const;
+
+/**
+* @brief Returns the IDL domain
+* @return Domain* the IDL domain pointer
+*/
+ ::Deployment::Domain *domain_idl (void);
+
+/**
+* @brief Returns the const XSC domain
+* @return Domain* the XSC domain pointer
+*/
+ Domain const *domain_xsc (void) const;
+
+/**
+* @brief Returns the XSC domain
+* @return Domain* the XSC domain pointer
+*/
+ Domain *domain_xsc (void);
+
+private:
+/**
+* @brief builds the domain structure
+*/
+bool build_domain ();
+
+/**
+* @brief builds the XSC data structure
+*/
+bool build_xsc ();
+
+/// The Deployment Domain structure
+auto_ptr < ::Deployment::Domain > idl_domain_;
+
+/// The XSC Domain structure
+auto_ptr <Domain> domain_;
+
+/// The return value used
+bool retval_;
+};
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* DD_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DP_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DP_Handler.cpp
new file mode 100644
index 00000000000..c045e15c17c
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DP_Handler.cpp
@@ -0,0 +1,276 @@
+// $Id$
+
+#include "DP_Handler.h"
+#include "ace/UUID.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+
+#include "CCD_Handler.h"
+#include "ADD_Handler.h"
+#include "MDD_Handler.h"
+#include "IDD_Handler.h"
+#include "ID_Handler.h"
+#include "PL_Handler.h"
+#include "Property_Handler.h"
+#include "cdp.hpp"
+
+#include "PCD_Handler.h"
+
+ACE_RCSID (Config_Handlers,
+ DP_Handler,
+ "$Id$")
+
+ namespace CIAO
+ {
+ namespace Config_Handlers
+ {
+ DP_Handler::DP_Handler (deploymentPlan &dp)
+ : xsc_dp_ (0)
+ , idl_dp_ (0)
+ , retval_ (true)
+ {
+ if (!this->resolve_plan (dp))
+ throw;
+ }
+
+ DP_Handler::DP_Handler (const ::Deployment::DeploymentPlan &plan)
+ : xsc_dp_ (new deploymentPlan),
+ idl_dp_ (0),
+ retval_ (0)
+ {
+ if (!this->build_xsc (plan))
+ throw;
+ }
+
+ DP_Handler::~DP_Handler (void)
+ throw ()
+ {
+ }
+
+ deploymentPlan const *
+ DP_Handler::xsc (void) const
+ {
+ if (this->retval_ && this->xsc_dp_.get () != 0)
+ return this->xsc_dp_.get ();
+
+ throw NoPlan ();
+ }
+
+ deploymentPlan *
+ DP_Handler::xsc (void)
+ {
+ if (this->retval_ && this->xsc_dp_.get () != 0)
+ return this->xsc_dp_.release ();
+
+ throw NoPlan ();
+ }
+
+ ::Deployment::DeploymentPlan const *
+ DP_Handler::plan (void) const
+ {
+ if (this->retval_ && this->idl_dp_.get () != 0)
+ return this->idl_dp_.get ();
+
+ throw NoPlan ();
+ }
+
+ ::Deployment::DeploymentPlan *
+ DP_Handler::plan (void)
+ {
+ if (this->retval_ && this->idl_dp_.get () != 0)
+ return this->idl_dp_.release ();
+
+ throw NoPlan ();
+ }
+
+ bool
+ DP_Handler::resolve_plan (deploymentPlan &xsc_dp)
+ {
+ DANCE_TRACE ("DP_Handler::resolve_plan");
+
+ ::Deployment::DeploymentPlan *tmp =
+ new Deployment::DeploymentPlan;
+
+ this->idl_dp_.reset (tmp);
+
+ // Read in the label, if present, since minoccurs = 0
+ if (xsc_dp.label_p ())
+ {
+ this->idl_dp_->label =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (xsc_dp.label ().c_str ()));
+ }
+
+ // Read in the UUID, if present
+ if (xsc_dp.UUID_p ())
+ {
+ this->idl_dp_->UUID =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (xsc_dp.UUID ().c_str ()));
+ }
+
+ // Similar thing for dependsOn
+ for (deploymentPlan::dependsOn_const_iterator dstart = xsc_dp.begin_dependsOn ();
+ dstart != xsc_dp.end_dependsOn ();
+ ++dstart)
+ {
+ CORBA::ULong len = this->idl_dp_->dependsOn.length ();
+ this->idl_dp_->dependsOn.length (len + 1);
+ ID_Handler::get_ImplementationDependency (*(*dstart),
+ this->idl_dp_->dependsOn [len]);
+
+ }
+
+ // ... An the property stuff
+ for (deploymentPlan::infoProperty_const_iterator pstart = xsc_dp.begin_infoProperty ();
+ pstart != xsc_dp.end_infoProperty ();
+ ++pstart)
+ {
+ CORBA::ULong len =
+ this->idl_dp_->infoProperty.length ();
+
+ this->idl_dp_->infoProperty.length (len + 1);
+
+ Property_Handler::handle_property (*(*pstart),
+ this->idl_dp_->infoProperty [len]);
+ }
+
+ // Read in the realizes, if present
+ if (xsc_dp.realizes_p ())
+ {
+ CCD_Handler::component_interface_descr (
+ xsc_dp.realizes (),
+ this->idl_dp_->realizes);
+ }
+
+ ADD_Handler::artifact_deployment_descrs (xsc_dp,
+ this->idl_dp_->artifact);
+
+ MDD_Handler::mono_deployment_descriptions (xsc_dp,
+ this->idl_dp_->implementation);
+
+ IDD_Handler::instance_deployment_descrs (xsc_dp,
+ this->idl_dp_->instance);
+
+ this->idl_dp_->connection.length (xsc_dp.count_connection ());
+ std::for_each (xsc_dp.begin_connection (),
+ xsc_dp.end_connection (),
+ PCD_Functor (this->idl_dp_->connection));
+
+ this->idl_dp_->localityConstraint.length (xsc_dp.count_localityConstraint ());
+
+ std::for_each (xsc_dp.begin_localityConstraint (),
+ xsc_dp.end_localityConstraint (),
+ PL_Functor (this->idl_dp_->localityConstraint));
+
+ //PCD_Handler::get_PlanConnectionDescription (xsc_dp, this->idl_dp_->connection);
+
+ return true;
+ }
+
+ bool
+ DP_Handler::build_xsc (const ::Deployment::DeploymentPlan &plan)
+ {
+ DANCE_TRACE ("DP_Handler::build_xsc");
+
+ // Initialize the UUID generator.
+ ACE_Utils::UUID_GENERATOR::instance ()->init ();
+
+ // Clear IDREF tables
+ IDD_Handler::IDREF.unbind_refs ();
+ MDD_Handler::IDREF.unbind_refs ();
+ ADD_Handler::IDREF.unbind_refs ();
+
+
+ size_t len; //Used for checking the length of struct data members
+
+ // Read in the label, if present, since minoccurs = 0
+ if (plan.label != 0)
+ {
+ XMLSchema::string< ACE_TCHAR > i(ACE_TEXT_CHAR_TO_TCHAR (plan.label));
+ this->xsc_dp_->label(i);
+ }
+
+ // Read in the UUID, if present
+ if (plan.UUID != 0)
+ {
+ XMLSchema::string< ACE_TCHAR > j(ACE_TEXT_CHAR_TO_TCHAR(plan.UUID));
+ this->xsc_dp_->UUID(j);
+ }
+
+ // Similar thing for dependsOn
+ len = plan.dependsOn.length();
+ for (size_t j = 0;
+ j < len;
+ ++j)
+ {
+ //this->xsc_dp_->add_dependsOn(ID_Handler::impl_dependency(plan.dependsOn[j]));
+ }
+
+ // ... And the property stuff
+ len = plan.infoProperty.length();
+ for (size_t q = 0;
+ q < len;
+ q++)
+ {
+ if (ACE_OS::strcmp (plan.infoProperty[q].name.in (),
+ "CIAOServerResources") == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "(%P|%t) DP_Handler: Dumping of ServerResources not currently supported."));
+ continue;
+ }
+
+ //this->xsc_dp_->add_infoProperty (Property_Handler::get_property (plan.infoProperty[q]));
+ }
+
+
+ // We are assuming there is a realizes for the moment
+ // @@ We may want to change this at a later date by creating a sequence of
+ // @@ ComponentInterfaceDescriptions in the DeploymentPlan in ../DAnCE/Deployment/Deployment_Data.idl
+ // @@ so we can check for length
+ this->xsc_dp_->realizes(CCD_Handler::component_interface_descr(plan.realizes));
+ if (!this->xsc_dp_->realizes_p())
+ {
+ ACE_ERROR ((LM_ERROR,
+ "(%P|%t) DP_Handler: "
+ "Error parsing Component Interface Descriptor."));
+ return false;
+ }
+
+ //Take care of the artifact(s) if they exist
+ len = plan.artifact.length();
+ for(size_t k = 0;
+ k < len;
+ k++)
+ {
+ //this->xsc_dp_->add_artifact (ADD_Handler::artifact_deployment_descr (plan.artifact[k]));
+ }
+
+ //Take care of the implementation(s) if they exist
+ len = plan.implementation.length();
+ for(size_t l = 0;
+ l < len;
+ l++)
+ {
+ //this->xsc_dp_->add_implementation (MDD_Handler::mono_deployment_description (plan.implementation[l]));
+ }
+
+ //Ditto for the instance(s)
+ len = plan.instance.length();
+ for(size_t m = 0;
+ m < len;
+ m++)
+ {
+ //this->xsc_dp_->add_instance (IDD_Handler::instance_deployment_descr (plan.instance[m]));
+ }
+
+ //Finally, take care of the Connection Planning
+ len = plan.connection.length();
+ for(size_t n = 0; n < len; n++)
+ {
+ //this->xsc_dp_->add_connection (PCD_Handler::get_PlanConnectionDescription (plan.connection[n]));
+ }
+
+ retval_ = true;
+ return true;
+ }
+ }
+ }
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DP_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DP_Handler.h
new file mode 100644
index 00000000000..82d93aaa62f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DP_Handler.h
@@ -0,0 +1,87 @@
+//==============================================================
+/**
+ * @file DP_Handler.h
+ *
+ * $Id$
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_DP_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DP_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+#include <memory>
+using std::auto_ptr;
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace Deployment
+{
+ struct DeploymentPlan ;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class deploymentPlan;
+
+ /*
+ * @class DP_Handler
+ *
+ * @brief Handler for Deployment::DeploymentPlan
+ */
+ class Config_Handlers_Export DP_Handler
+ {
+ public:
+ class NoPlan {};
+
+ /// Use this constructor if you want to use
+ /// the XSC->IDL mapping
+ DP_Handler (deploymentPlan &dp);
+
+ /// Use this constructor if you want to use
+ /// the IDL->XSC mapping
+ DP_Handler (const ::Deployment::DeploymentPlan &plan);
+
+ ~DP_Handler (void)
+ throw ();
+
+ /// Generates the IDL->XSC mapping. returns
+ /// null if the method fails or if the class was
+ /// constructed with the wrong source.
+ deploymentPlan const *xsc (void) const;
+
+ deploymentPlan *xsc (void);
+
+ /// Generates the XSC->IDL mapping. returns null
+ /// if the method fails or the class was constructed
+ ::Deployment::DeploymentPlan const *plan (void) const;
+
+ ::Deployment::DeploymentPlan *plan (void);
+
+ private:
+
+ bool resolve_plan (deploymentPlan &dp);
+
+ bool build_xsc (const ::Deployment::DeploymentPlan &plan);
+
+ private:
+ auto_ptr< deploymentPlan > xsc_dp_;
+
+ auto_ptr< ::Deployment::DeploymentPlan> idl_dp_;
+
+ bool retval_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_CONFIG_HANDLERS_DP_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.cpp
new file mode 100644
index 00000000000..d69f6035897
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.cpp
@@ -0,0 +1,107 @@
+// $Id$
+
+#include "DP_PCD_Handler.h"
+#include "CEPE_Handler.h"
+#include "PSPE_Handler.h"
+#include "ERE_Handler.h"
+#include "CRDD_Handler.h"
+#include "PCD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "cdp.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ DP_PCD_Handler::plan_connection_descrs (
+ const DeploymentPlan &src,
+ Deployment::PlanConnectionDescriptions& dest)
+ {
+ DANCE_TRACE("DP_PCD_Handler::plan_connection_descrs");
+ DeploymentPlan::connection_const_iterator cci_e =
+ src.end_connection ();
+
+ CORBA::ULong pos = 0;
+ dest.length (src.count_connection ());
+ for (DeploymentPlan::connection_const_iterator cci_b =
+ src.begin_connection ();
+ cci_b != cci_e;
+ ++cci_b)
+ {
+ DP_PCD_Handler::plan_connection_descr (*(cci_b),
+ dest[pos++]);
+ }
+ }
+
+ PlanConnectionDescription
+ DP_PCD_Handler::plan_connection_descr (
+ const Deployment::PlanConnectionDescription &src)
+ {
+ DANCE_TRACE("DP_PCD_Handler::plan_connection_descr");
+ PlanConnectionDescription pcd = PCD_Handler::get_PlanConnectionDescription(src);
+ return pcd;
+ }
+
+ void
+ DP_PCD_Handler::plan_connection_descr (
+ const PlanConnectionDescription &src,
+ Deployment::PlanConnectionDescription &dest)
+ {
+ DANCE_TRACE("DP_PCD_Handler::plan_connection_descr - reverse");
+ dest.name =
+ src.name ().c_str ();
+
+ if (src.source_p ())
+ {
+ // There will be only one as per the schema
+ dest.source.length (1);
+ dest.source[0] =
+ src.source ().c_str ();
+ }
+
+
+ CEPE_Handler::external_port_endpoints (src,
+ dest.externalEndpoint);
+ ERE_Handler::external_ref_endpoints (src,
+ dest.externalReference);
+
+ PSPE_Handler::sub_component_port_endpoints (src,
+ dest.internalEndpoint);
+
+#if 0
+ // @@MAJO: Need to figure how to use this.
+ if (desc.deployedResource_p ())
+ {
+ CRDD_Handler crddhandler;
+
+ toconfig.deployedResource.length (
+ toconfig.deployedResource.length () + 1);
+
+ crddhandler.get_ConnectionResourceDeploymentDescription (
+ toconfig.deployedResource[toconfig.deployedResource.length () - 1],
+ desc.deployedResource ());
+ }
+
+ if (desc.deployRequirement_p ())
+ {
+
+ // @@ MAJO: Not sure how to use this
+ //Create the handler for the requirements.
+ Requirement_Handler reqhandler;
+
+ //Increase the sequence length and delgate
+ //the Requirement to the Req_Handler.
+ toconfig.deployRequirement.length (
+ toconfig.deployRequirement.length () + 1);
+ reqhandler.get_Requirement (
+ toconfig.deployRequirement[toconfig.deployRequirement.length () - 1],
+ desc.deployRequirement ());
+
+
+ }
+#endif /*if 0*/
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.h
new file mode 100644
index 00000000000..eceb6f03bb6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DP_PCD_Handler.h
@@ -0,0 +1,67 @@
+//==============================================================
+/**
+ * @file DP_PCD_Handler.h
+ *
+ * $Id$
+ *
+ * Handler for Deployment::PlanConnectionHandler
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_DP_PCD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DP_PCD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct PlanConnectionDescription;
+ class PlanConnectionDescriptions;
+}
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+ class DeploymentPlan;
+ class PlanConnectionDescription;
+
+ /*
+ * @class DP_PCD_Handler
+ *
+ * @brief Handler class for <PlanConnectionDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC PlanConnectionDescription objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Export DP_PCD_Handler
+ {
+ public:
+ static void plan_connection_descrs (
+ const DeploymentPlan &src,
+ Deployment::PlanConnectionDescriptions& toconfig);
+
+ static PlanConnectionDescription plan_connection_descr(
+ const Deployment::PlanConnectionDescription &src);
+
+ private:
+ static void plan_connection_descr (
+ const PlanConnectionDescription& desc,
+ Deployment::PlanConnectionDescription& toconfig);
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_PCD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.cpp
new file mode 100644
index 00000000000..57318d35a4a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.cpp
@@ -0,0 +1,179 @@
+//$Id$
+
+#include "DataType_Handler.h"
+#include "tao/AnyTypeCode/TypeCode.h"
+#include "tao/AnyTypeCode/TypeCode_Constants.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ DataType_Handler::DataType_Handler (void)
+ {
+ }
+ DataType_Handler::~DataType_Handler (void)
+ {
+ }
+
+ ///This method takes a <CIAO::Config_Handlers::DataType>
+ ///and returns the corresponding CORBA::TypeCode.
+ void
+ DataType_Handler::data_type (const DataType& desc,
+ CORBA::TypeCode_ptr& type)
+ {
+ DANCE_TRACE("DataType_Handler::data_type");
+ TCKind kind (desc.kind ());
+
+ switch (kind.integral ())
+ {
+ case TCKind::tk_null_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_null);
+ break;
+
+ case TCKind::tk_short_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_short);
+ break;
+
+ case TCKind::tk_long_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_long);
+ break;
+
+ case TCKind::tk_ushort_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_ushort);
+ break;
+
+ case TCKind::tk_ulong_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_ulong);
+ break;
+
+ case TCKind::tk_float_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_float);
+ break;
+
+ case TCKind::tk_double_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_double);
+ break;
+
+ case TCKind::tk_boolean_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_boolean);
+ break;
+
+ case TCKind::tk_char_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_char);
+ break;
+
+ case TCKind::tk_octet_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_octet);
+ break;
+
+ case TCKind::tk_string_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_string);
+ break;
+
+ case TCKind::tk_longlong_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_longlong);
+ break;
+
+ case TCKind::tk_ulonglong_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_ulonglong);
+ break;
+
+ case TCKind::tk_longdouble_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_longdouble);
+ break;
+
+ case TCKind::tk_wchar_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_wchar);
+ break;
+
+ case TCKind::tk_wstring_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_wstring);
+ break;
+
+ case TCKind::tk_any_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_any);
+ break;
+
+ case TCKind::tk_TypeCode_l:
+ type = CORBA::TypeCode::_duplicate (CORBA::_tc_TypeCode);
+ break;
+
+ default:
+ ACE_ERROR ((LM_ERROR, "DataType_Handler::data_type, Invalid typecode in any\n"));
+ throw 1;
+ }
+
+ // This case used to be supported...is it not in the schema?
+ // case TCKind::tk_Object)
+ // type = CORBA::TypeCode::_duplicate (CORBA::_tc_Object);*/
+
+ }
+
+ DataType
+ DataType_Handler::data_type (const CORBA::TypeCode_ptr& src)
+ {
+ DANCE_TRACE("DataType_Handler::data_type - reverse");
+ switch (src->kind ())
+ {
+ case ::CORBA::tk_null:
+ return DataType (TCKind::tk_null);
+ break;
+ case CORBA::tk_short:
+ return DataType (TCKind::tk_short);
+ break;
+ case CORBA::tk_long:
+ return DataType (TCKind::tk_long);
+ break;
+ case CORBA::tk_ushort:
+ return DataType (TCKind::tk_ushort);
+ break;
+ case CORBA::tk_ulong:
+ return DataType (TCKind::tk_ulong);
+ break;
+ case CORBA::tk_float:
+ return DataType (TCKind::tk_float);
+ break;
+ case CORBA::tk_double:
+ return DataType (TCKind::tk_double);
+ break;
+ case CORBA::tk_boolean:
+ return DataType (TCKind::tk_boolean);
+ break;
+ case CORBA::tk_char:
+ return DataType (TCKind::tk_char);
+ break;
+ case CORBA::tk_octet:
+ return DataType (TCKind::tk_octet);
+ break;
+ case CORBA::tk_string:
+ return DataType (TCKind::tk_string);
+ break;
+ case CORBA::tk_longlong:
+ return DataType (TCKind::tk_longlong);
+ break;
+ case CORBA::tk_ulonglong:
+ return DataType (TCKind::tk_ulonglong);
+ break;
+ case CORBA::tk_longdouble:
+ return DataType (TCKind::tk_longdouble);
+ break;
+ case CORBA::tk_wchar:
+ return DataType (TCKind::tk_wchar);
+ break;
+ case CORBA::tk_wstring:
+ return DataType (TCKind::tk_wstring);
+ break;
+ case CORBA::tk_any:
+ return DataType (TCKind::tk_any);
+ break;
+ case CORBA::tk_TypeCode:
+ return DataType (TCKind::tk_TypeCode);
+ default:
+ ACE_ERROR ((LM_ERROR, "DataType_Handler::data_type, Invalid typecode\n"));
+ throw 1;
+ }
+ throw 1;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.h
new file mode 100644
index 00000000000..b2a3240fbec
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DataType_Handler.h
@@ -0,0 +1,62 @@
+//================================================
+/**
+* @file DataType_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================
+
+#ifndef DATATYPE_HANDLER_H
+#define DATATYPE_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "DAnCE/Deployment/DeploymentC.h"
+#include "Basic_Deployment_Data.hpp"
+
+#include "Config_Handlers_Common_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace CIAO{
+
+namespace Config_Handlers{
+
+/*
+* @class DataType_Handler
+*
+* @brief Handler class for <ComponentPortDescription> types.
+*
+* This class defines handler methods to map values from
+* XSC objects, parsed from the descriptor files, to the
+* corresponding CORBA IDL type for the schema element.
+*
+*/
+
+class Config_Handlers_Common_Export DataType_Handler {
+
+public:
+
+DataType_Handler (void);
+virtual ~DataType_Handler (void);
+
+////This method takes a <CIAO::Config_Handlers::DataType>
+///and returns the corresponding CORBA::TypeCode.
+static void
+data_type (const DataType& desc,
+CORBA::TypeCode_ptr& type);
+
+
+static DataType data_type (const CORBA::TypeCode_ptr& type);
+};
+
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* DATATYPE_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Deployment.cpp b/modules/CIAO/DAnCE/Config_Handlers/Deployment.cpp
new file mode 100644
index 00000000000..cce77ace34b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Deployment.cpp
@@ -0,0 +1,854 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "Deployment.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::Domain
+ domain (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("domain"))
+ {
+ ::CIAO::Config_Handlers::Domain r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::deploymentPlan
+ DeploymentPlan (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("DeploymentPlan"))
+ {
+ ::CIAO::Config_Handlers::deploymentPlan r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription
+ implementationArtifactDescription (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("implementationArtifactDescription"))
+ {
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription
+ componentInterfaceDescription (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("componentInterfaceDescription"))
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::ComponentImplementationDescription
+ componentImplementationDescription (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("componentImplementationDescription"))
+ {
+ ::CIAO::Config_Handlers::ComponentImplementationDescription r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::ComponentPackageDescription
+ componentPackageDescription (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("componentPackageDescription"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageDescription r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::PackageConfiguration
+ packageConfiguration (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("packageConfiguration"))
+ {
+ ::CIAO::Config_Handlers::PackageConfiguration r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+
+ namespace reader
+ {
+ ::CIAO::Config_Handlers::TopLevelPackageDescription
+ topLevelPackageDescription (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("topLevelPackageDescription"))
+ {
+ ::CIAO::Config_Handlers::TopLevelPackageDescription r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace writer
+ {
+ void
+ domain (::CIAO::Config_Handlers::Domain const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("domain"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::Domain,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Node,
+ virtual ::CIAO::Config_Handlers::Writer::Interconnect,
+ virtual ::CIAO::Config_Handlers::Writer::Bridge,
+ virtual ::CIAO::Config_Handlers::Writer::Resource,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::SharedResource,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ DeploymentPlan (::CIAO::Config_Handlers::deploymentPlan const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("DeploymentPlan"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::deploymentPlan,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::InstanceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::InstanceResourceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::PlanConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::PlanSubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ConnectionResourceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PlanPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::PlanSubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::CIAO::Config_Handlers::Writer::ArtifactDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PlanLocality,
+ virtual ::CIAO::Config_Handlers::Writer::PlanLocalityKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ implementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("implementationArtifactDescription"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ componentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("componentInterfaceDescription"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ componentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("componentImplementationDescription"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::Locality,
+ virtual ::CIAO::Config_Handlers::Writer::LocalityKind,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ componentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("componentPackageDescription"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::Locality,
+ virtual ::CIAO::Config_Handlers::Writer::LocalityKind,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ packageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("packageConfiguration"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::Locality,
+ virtual ::CIAO::Config_Handlers::Writer::LocalityKind,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+
+ namespace writer
+ {
+ void
+ topLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("topLevelPackageDescription"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::CIAO::Config_Handlers::Writer::TopLevelPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::Locality,
+ virtual ::CIAO::Config_Handlers::Writer::LocalityKind,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Deployment.hpp b/modules/CIAO/DAnCE/Config_Handlers/Deployment.hpp
new file mode 100644
index 00000000000..2a039912b19
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Deployment.hpp
@@ -0,0 +1,221 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef DEPLOYMENT_HPP
+#define DEPLOYMENT_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "Basic_Deployment_Data.hpp"
+
+#include "cpd.hpp"
+
+#include "cdd.hpp"
+
+#include "cdp.hpp"
+
+#include "toplevel.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::Domain
+ domain (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::deploymentPlan
+ DeploymentPlan (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription
+ implementationArtifactDescription (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription
+ componentInterfaceDescription (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ComponentImplementationDescription
+ componentImplementationDescription (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ComponentPackageDescription
+ componentPackageDescription (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::PackageConfiguration
+ packageConfiguration (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::TopLevelPackageDescription
+ topLevelPackageDescription (xercesc::DOMDocument const*);
+ }
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ domain (::CIAO::Config_Handlers::Domain const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ DeploymentPlan (::CIAO::Config_Handlers::deploymentPlan const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ implementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ componentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ componentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ componentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ packageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ topLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const&, xercesc::DOMDocument*);
+ }
+ }
+}
+
+#endif // DEPLOYMENT_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.cpp b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.cpp
new file mode 100644
index 00000000000..3bee947afd3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.cpp
@@ -0,0 +1,982 @@
+// $Id$
+
+#include "ace/Log_Msg.h"
+#include "tao/SystemException.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DnC_Dump.h"
+#include "DnC_Dump_T.h"
+#include <iostream>
+
+using namespace ::Deployment::DnC_Dump_T;
+namespace Deployment
+{
+ void
+ DnC_Dump::dump (const char* caption, const ::CORBA::StringSeq &str_seq)
+ {
+ CORBA::ULong size = str_seq.length ();
+
+ if (size != 0)
+ {
+ Dump_Obj dump_obj (caption);
+
+ for (CORBA::ULong i = 0; i < size; ++i)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s%s %d:\n",
+ Dump_Obj::indent(), caption, i));
+ ACE_DEBUG ((LM_DEBUG, "%s %s:\n",
+ Dump_Obj::indent(), str_seq[i].in ()));
+ }
+ }
+ }
+
+ // Dumps a string
+ void DnC_Dump::dump (const char* caption, const TAO::String_Manager& str)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s%s: %s\n", Dump_Obj::indent(),
+ caption, str.in()));
+ }
+
+ // Dumps a boolean
+ void DnC_Dump::dump (const char* caption, const CORBA::Boolean& val)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s%s: %s\n", Dump_Obj::indent(),
+ caption, val ? "true" : "false"));
+ }
+
+ /*
+ * Object dump methods
+ */
+
+ // SatisfierProperty
+ void DnC_Dump::dump (const Deployment::SatisfierProperty& sp)
+ {
+ Dump_Obj dump_obj("SatisfierProperty");
+ dump ("name", sp.name);
+
+ ACE_DEBUG ((LM_DEBUG, "%skind: ", Dump_Obj::indent()));
+ switch (sp.kind) {
+ case Quantity: ACE_DEBUG ((LM_DEBUG, "Quantity\n")); break;
+ case Capacity: ACE_DEBUG ((LM_DEBUG, "Capacity\n")); break;
+ case Minimum: ACE_DEBUG ((LM_DEBUG, "Minimum\n")); break;
+ case Maximum: ACE_DEBUG ((LM_DEBUG, "Maximum\n")); break;
+ case Attribute: ACE_DEBUG ((LM_DEBUG, "Attribute\n")); break;
+ case Selection: ACE_DEBUG ((LM_DEBUG, "Selection\n")); break;
+ }
+
+ ACE_DEBUG ((LM_DEBUG, "%svalue:\n", Dump_Obj::indent()));
+ dump (sp.value);
+ }
+
+ // SharedResource
+ void DnC_Dump::dump (const Deployment::SharedResource& sr)
+ {
+ Dump_Obj dump_obj("SharedResource");
+ dump ("name", sr.name);
+ dump ("resourceType", sr.resourceType);
+#if 0
+ dump_ref_seq<Deployment::Domain> ("nodeRef",
+ sr.nodeRef,
+ "Domain",
+ &Domain::node);
+#endif /*if 0*/
+ dump_sequence ("property",
+ sr.property);
+ }
+
+ // Resource
+ void DnC_Dump::dump (const Deployment::Resource& resource)
+ {
+ Dump_Obj dump_obj("Resource");
+ dump ("name", resource.name);
+ dump ("resourceType", resource.resourceType);
+ dump_sequence ("property",
+ resource.property);
+ }
+
+ // Node
+ void DnC_Dump::dump (const Deployment::Node& node)
+ {
+ Dump_Obj dump_obj("Node");
+ dump ("name", node.name);
+ dump ("label", node.label);
+
+#if (_MSC_VER)
+ dump_ref_seq<Deployment::Domain> (
+ "sharedResourceRef",
+ node.sharedResourceRef,
+ "Domain",
+ &Domain::sharedResource);
+#endif
+
+#if (_MSC_VER)
+ dump_ref_seq<Deployment::Domain> (
+ "connectionRef",
+ node.connectionRef,
+ "Domain",
+ &Domain::interconnect);
+#endif
+
+ dump_sequence ("resource",
+ node.resource);
+
+ }
+
+ // Interconnect
+ void DnC_Dump::dump (const Deployment::Interconnect& conn)
+ {
+ Dump_Obj dump_obj("Interconnect");
+ dump ("name", conn.name);
+ dump ("label", conn.label);
+
+#if (_MSC_VER)
+ dump_ref_seq<Deployment::Domain> (
+ "connectionRef",
+ conn.connectionRef,
+ "Domain",
+ &Domain::bridge);
+#endif
+#if (_MSC_VER)
+ dump_ref_seq<Deployment::Domain> (
+ "connectRef",
+ conn.connectRef,
+ "Domain",
+ &Domain::node);
+#endif
+ dump_sequence ("resource",
+ conn.resource);
+ }
+
+ // Bridge
+ void
+ DnC_Dump::dump (const Deployment::Bridge& bridge)
+ {
+ Dump_Obj dump_obj("Bridge");
+ dump ("name", bridge.name);
+ dump ("label", bridge.label);
+
+#if (_MSC_VER)
+ dump_ref_seq<Deployment::Domain> (
+ "connectRef",
+ bridge.connectRef,
+ "Domain",
+ &Domain::interconnect);
+#endif
+
+ dump_sequence ("resource", bridge.resource);
+ }
+
+ void DnC_Dump::dump (const ::Deployment::Domain &domain)
+ {
+ CORBA::Any val;
+ val <<= domain;
+
+ Dump_Obj dump_obj ("Domain",
+ val);
+
+ dump ("UUID",
+ domain.UUID);
+ dump ("label",
+ domain.label);
+
+ dump_sequence ("sharedResource",
+ domain.sharedResource);
+ dump_sequence ("node",
+ domain.node);
+ dump_sequence ("interconnect",
+ domain.interconnect);
+ dump_sequence ("bridge",
+ domain.bridge);
+
+ dump_sequence ("infoProperty",
+ domain.infoProperty);
+ }
+
+ // ComponentPortDescription
+
+ void DnC_Dump::dump (const ::Deployment::ComponentPortDescription
+ &compportdesc)
+ {
+ Dump_Obj dump_obj("ComponentPortDescription");
+
+ dump ("name", compportdesc.name);
+ dump ("specificType", compportdesc.specificType);
+ dump ("supportedType", compportdesc.supportedType);
+ dump ("provider", compportdesc.provider);
+ dump ("exclusiveProvider", compportdesc.exclusiveProvider);
+ dump ("exclusiveUser", compportdesc.exclusiveUser);
+ dump ("optional", compportdesc.optional);
+
+ ACE_DEBUG ((LM_DEBUG, "%skind: ", Dump_Obj::indent()));
+ switch (compportdesc.kind) {
+ case Facet: ACE_DEBUG ((LM_DEBUG, "Facet\n")); break;
+ case SimplexReceptacle: ACE_DEBUG ((LM_DEBUG, "SimplexReceptacle\n")); break;
+ case MultiplexReceptacle: ACE_DEBUG ((LM_DEBUG, "MultiplexReceptacle\n")); break;
+ case EventEmitter: ACE_DEBUG ((LM_DEBUG, "EventEmitter\n")); break;
+ case EventPublisher: ACE_DEBUG ((LM_DEBUG, "EventPublisher\n")); break;
+ case EventConsumer: ACE_DEBUG ((LM_DEBUG, "EventConsumer\n")); break;
+ default: ACE_DEBUG ((LM_DEBUG, "Unknown port kind\n")); break;
+ }
+ }
+
+ // ComponentPropertyDescription
+
+ void DnC_Dump::dump (const ::Deployment::ComponentPropertyDescription &comppropdesc)
+ {
+ Dump_Obj dump_obj("ComponentPropertyDescription");
+
+ dump ("name", comppropdesc.name);
+
+ ACE_DEBUG ((LM_DEBUG, "%stype: ", Dump_Obj::indent()));
+ switch (comppropdesc.type.in()->kind()) {
+ case ::CORBA::tk_null: ACE_DEBUG ((LM_DEBUG, "tk_null\n")); break;
+ case ::CORBA::tk_void: ACE_DEBUG ((LM_DEBUG, "tk_void\n")); break;
+ case ::CORBA::tk_short: ACE_DEBUG ((LM_DEBUG, "tk_short\n")); break;
+ case ::CORBA::tk_long: ACE_DEBUG ((LM_DEBUG, "tk_long\n")); break;
+ case ::CORBA::tk_ushort: ACE_DEBUG ((LM_DEBUG, "tk_ushort\n")); break;
+ case ::CORBA::tk_ulong: ACE_DEBUG ((LM_DEBUG, "tk_ulong\n")); break;
+ case ::CORBA::tk_float: ACE_DEBUG ((LM_DEBUG, "tk_float\n")); break;
+ case ::CORBA::tk_double: ACE_DEBUG ((LM_DEBUG, "tk_double\n")); break;
+ case ::CORBA::tk_boolean: ACE_DEBUG ((LM_DEBUG, "tk_boolean\n")); break;
+ case ::CORBA::tk_char: ACE_DEBUG ((LM_DEBUG, "tk_char\n")); break;
+ case ::CORBA::tk_octet: ACE_DEBUG ((LM_DEBUG, "tk_octet\n")); break;
+ case ::CORBA::tk_any: ACE_DEBUG ((LM_DEBUG, "tk_any\n")); break;
+ case ::CORBA::tk_TypeCode: ACE_DEBUG ((LM_DEBUG, "tk_TypeCode\n")); break;
+ case ::CORBA::tk_Principal: ACE_DEBUG ((LM_DEBUG, "tk_Principal\n")); break;
+ case ::CORBA::tk_objref: ACE_DEBUG ((LM_DEBUG, "tk_objref\n")); break;
+ case ::CORBA::tk_struct: ACE_DEBUG ((LM_DEBUG, "tk_struct\n")); break;
+ case ::CORBA::tk_union: ACE_DEBUG ((LM_DEBUG, "tk_union\n")); break;
+ case ::CORBA::tk_enum: ACE_DEBUG ((LM_DEBUG, "tk_enum\n")); break;
+ case ::CORBA::tk_string: ACE_DEBUG ((LM_DEBUG, "tk_string\n")); break;
+ case ::CORBA::tk_sequence: ACE_DEBUG ((LM_DEBUG, "tk_sequence\n")); break;
+ case ::CORBA::tk_array: ACE_DEBUG ((LM_DEBUG, "tk_array\n")); break;
+ case ::CORBA::tk_alias: ACE_DEBUG ((LM_DEBUG, "tk_alias\n")); break;
+ case ::CORBA::tk_except: ACE_DEBUG ((LM_DEBUG, "tk_except\n")); break;
+ case ::CORBA::tk_longlong: ACE_DEBUG ((LM_DEBUG, "tk_longlong\n")); break;
+ case ::CORBA::tk_ulonglong: ACE_DEBUG ((LM_DEBUG, "tk_ulonglong\n")); break;
+ case ::CORBA::tk_longdouble: ACE_DEBUG ((LM_DEBUG, "tk_longdouble\n")); break;
+ case ::CORBA::tk_wchar: ACE_DEBUG ((LM_DEBUG, "tk_wchar\n")); break;
+ case ::CORBA::tk_wstring: ACE_DEBUG ((LM_DEBUG, "tk_wstring\n")); break;
+ case ::CORBA::tk_fixed: ACE_DEBUG ((LM_DEBUG, "tk_fixed\n")); break;
+ case ::CORBA::tk_value: ACE_DEBUG ((LM_DEBUG, "tk_value\n")); break;
+ case ::CORBA::tk_value_box: ACE_DEBUG ((LM_DEBUG, "tk_value_box\n")); break;
+ case ::CORBA::tk_native: ACE_DEBUG ((LM_DEBUG, "tk_native\n")); break;
+ case ::CORBA::tk_abstract_interface: ACE_DEBUG ((LM_DEBUG, "tk_abstract_interface\n")); break;
+ case ::CORBA::tk_local_interface: ACE_DEBUG ((LM_DEBUG, "tk_local_interface\n")); break;
+ case ::CORBA::tk_component: ACE_DEBUG ((LM_DEBUG, "tk_component\n")); break;
+ case ::CORBA::tk_home: ACE_DEBUG ((LM_DEBUG, "tk_home\n")); break;
+ case ::CORBA::tk_event: ACE_DEBUG ((LM_DEBUG, "tk_event\n")); break;
+ default:
+ break;
+ };
+ }
+
+ // ComponentInterfaceDescription
+
+ void DnC_Dump::dump (const ::Deployment::ComponentInterfaceDescription &cid)
+ {
+ Dump_Obj dump_obj("ComponentInterfaceDescription");
+ dump ("label", cid.label);
+ dump ("UUID", cid.UUID);
+ dump ("specificType", cid.specificType);
+ dump ("supportedType", cid.supportedType);
+ dump ("idlFile", cid.idlFile);
+ dump_sequence ("configProperty", cid.configProperty);
+ dump_sequence ("port", cid.port);
+ dump_sequence ("property", cid.property);
+ dump_sequence ("infoProperty", cid.infoProperty);
+ }
+
+ // Requirement
+
+ void DnC_Dump::dump (const ::Deployment::Requirement &req)
+ {
+ Dump_Obj dump_obj("Requirement");
+
+ dump ("resourceType", req.resourceType);
+ dump ("name", req.name);
+ dump_sequence ("property", req.property);
+ }
+
+ // MonolithicDeploymentDescription
+
+ void DnC_Dump::dump(const Deployment::MonolithicDeploymentDescription &mdd)
+ {
+ Dump_Obj dump_obj("MonolithicDeploymentDescription");
+
+ dump ("name", mdd.name);
+ dump ("source", mdd.source);
+
+#if (_MSC_VER)
+ dump_ref_seq<Deployment::DeploymentPlan> ("artifactRef", mdd.artifactRef,
+ "DeploymentPlan",
+ &DeploymentPlan::artifact);
+#endif
+ dump_sequence ("execParameter", mdd.execParameter);
+ dump_sequence ("deployRequirement", mdd.deployRequirement);
+ }
+
+ // ResourceUsageKind
+
+ void DnC_Dump::dump(const Deployment::ResourceUsageKind &ruk)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%sresourceUsage: ", Dump_Obj::indent()));
+ switch (ruk) {
+ case None: ACE_DEBUG ((LM_DEBUG, "None\n")); break;
+ case InstanceUsesResource: ACE_DEBUG ((LM_DEBUG, "InstanceUsesResource\n")); break;
+ case ResourceUsesInstance: ACE_DEBUG ((LM_DEBUG, "ResourceUsesInstance\n")); break;
+ case PortUsesResource: ACE_DEBUG ((LM_DEBUG, "PortUsesResource\n")); break;
+ case ResourceUsesPort: ACE_DEBUG ((LM_DEBUG, "ResourceUsesPort\n")); break;
+ }
+ }
+
+ // InstanceResourceDeploymentDescription
+
+ void DnC_Dump::dump(const Deployment::InstanceResourceDeploymentDescription &irdd)
+ {
+ Dump_Obj dump_obj("InstanceResourceDeploymentDescription");
+
+ dump (irdd.resourceUsage);
+ dump ("requirementName", irdd.requirementName);
+ dump ("resourceName", irdd.resourceName);
+ ACE_DEBUG ((LM_DEBUG, "%sresourceValue:\n", Dump_Obj::indent()));
+ dump_sequence ("property", irdd.property);
+ }
+
+ // InstanceDeploymentDescription
+
+ void DnC_Dump::dump(const Deployment::InstanceDeploymentDescription &idd)
+ {
+ Dump_Obj dump_obj("InstanceDeploymentDescription");
+
+ dump ("name", idd.name);
+ dump ("node", idd.node);
+ dump ("source", idd.source);
+
+#if (_MSC_VER)
+ dump_ref<Deployment::DeploymentPlan> ("implementationRef",
+ idd.implementationRef,
+ "DeploymentPlan",
+ &DeploymentPlan::implementation);
+#endif
+ dump_sequence ("configProperty", idd.configProperty);
+ dump_sequence ("deployedResource", idd.deployedResource);
+ dump_sequence ("deployedSharedResource", idd.deployedSharedResource);
+ }
+
+ // ComponentExternalPortEndpoint
+
+ void DnC_Dump::dump (const ::Deployment::ComponentExternalPortEndpoint &cepe)
+ {
+ Dump_Obj dump_obj("ComponentExternalPortEndpoint");
+
+ dump ("portName", cepe.portName);
+ }
+
+ // PlanSubcomponentPortEndpoint
+
+ void DnC_Dump::dump(const Deployment::PlanSubcomponentPortEndpoint &pspe)
+ {
+ Dump_Obj dump_obj("PlanSubcomponentPortEndpoint");
+
+ dump ("portName", pspe.portName);
+ dump ("provider", pspe.provider);
+ ACE_DEBUG ((LM_DEBUG, "%skind: ", Dump_Obj::indent()));
+ switch (pspe.kind) {
+ case Facet: ACE_DEBUG ((LM_DEBUG, "Facet\n")); break;
+ case SimplexReceptacle: ACE_DEBUG ((LM_DEBUG, "SimplexReceptacle\n")); break;
+ case MultiplexReceptacle: ACE_DEBUG ((LM_DEBUG, "MultiplexReceptacle\n")); break;
+ case EventEmitter: ACE_DEBUG ((LM_DEBUG, "EventEmitter\n")); break;
+ case EventPublisher: ACE_DEBUG ((LM_DEBUG, "EventPublisher\n")); break;
+ case EventConsumer: ACE_DEBUG ((LM_DEBUG, "EventConsumer\n")); break;
+ default: ACE_DEBUG ((LM_DEBUG, "Unknown port kind\n")); break;
+ }
+#if (_MSC_VER)
+ dump_ref<Deployment::DeploymentPlan> ("instanceRef", pspe.instanceRef,
+ "DeploymentPlan",
+ &DeploymentPlan::instance);
+#endif
+ }
+
+ // ExternalReferenceEndpoint
+
+ void DnC_Dump::dump (const ::Deployment::ExternalReferenceEndpoint &ere)
+ {
+ Dump_Obj dump_obj("ExternalReferenceEndpoint");
+
+ dump ("location", ere.location);
+ }
+
+ // ConnectionResourceDeploymentDescription
+
+ void DnC_Dump::dump(const Deployment::ConnectionResourceDeploymentDescription &crdd)
+ {
+ Dump_Obj dump_obj("ConnectionResourceDeploymentDescription");
+
+ dump ("targetName", crdd.targetName);
+ dump ("requirementName", crdd.requirementName);
+ dump ("resourceName", crdd.resourceName);
+ ACE_DEBUG ((LM_DEBUG, "%sresourceValue:\n", Dump_Obj::indent()));
+ dump_sequence ("properties", crdd.property);
+ }
+
+ // PlanConnectionDescription
+
+ void DnC_Dump::dump(const Deployment::PlanConnectionDescription &pcd)
+ {
+ Dump_Obj dump_obj("PlanConnectionDescription");
+
+ dump ("name", pcd.name);
+ dump ("source", pcd.source);
+ dump_sequence ("deployRequirement", pcd.deployRequirement);
+ dump_sequence ("externalEndpoint", pcd.externalEndpoint);
+ dump_sequence ("internalEndpoint", pcd.internalEndpoint);
+ dump_sequence ("externalReference", pcd.externalReference);
+ dump_sequence ("deployedResource", pcd.deployedResource);
+ }
+
+ // PlanSubcomponentPropertyReference
+
+ void DnC_Dump::dump(const Deployment::PlanSubcomponentPropertyReference &pspr)
+ {
+ Dump_Obj dump_obj("PlanSubcomponentPropertyReference");
+
+ dump ("propertyName", pspr.propertyName);
+
+#if (_MSC_VER)
+ dump_ref<Deployment::DeploymentPlan> ("instanceRef", pspr.instanceRef,
+ "DeploymentPlan",
+ &DeploymentPlan::instance);
+#endif
+ }
+
+ // PlanPropertyMapping
+
+ void DnC_Dump::dump(const Deployment::PlanPropertyMapping &ppm)
+ {
+ Dump_Obj dump_obj("PlanPropertyMapping");
+
+ dump ("name", ppm.name);
+ dump ("source", ppm.source);
+ dump ("externalName", ppm.externalName);
+ dump_sequence ("delegatesTo", ppm.delegatesTo);
+ }
+
+ // ImplementationDependency
+
+ void DnC_Dump::dump(const Deployment::ImplementationDependency &id)
+ {
+ Dump_Obj dump_obj("ImplementationDependency");
+
+ dump ("requiredType", id.requiredType);
+ }
+
+ // ResourceDeploymentDescription
+
+ void DnC_Dump::dump(const Deployment::ResourceDeploymentDescription &rdd)
+ {
+ Dump_Obj dump_obj("ResourceDeploymentDescription");
+
+ dump ("requirementName", rdd.requirementName);
+ dump ("resourceName", rdd.resourceName);
+ ACE_DEBUG ((LM_DEBUG, "%sresourceValue:\n", Dump_Obj::indent()));
+ dump_sequence ("properties", rdd.property);
+ }
+
+ // ArtifactDeploymentDescription
+
+ void DnC_Dump::dump(const Deployment::ArtifactDeploymentDescription &add)
+ {
+ Dump_Obj dump_obj("ArtifactDeploymentDescription");
+
+ dump ("name", add.name);
+ dump ("location", add.location);
+ dump ("node", add.node);
+ dump ("source", add.source);
+ dump_sequence ("execParameter", add.execParameter);
+ dump_sequence ("deployRequirement", add.deployRequirement);
+ dump_sequence ("deployedResource", add.deployedResource);
+ }
+
+ void DnC_Dump::dump(const Deployment::DeploymentPlan &plan)
+ {
+ CORBA::Any val;
+
+ val <<= plan;
+
+ Dump_Obj dump_obj("DeploymentPlan", val);
+
+ dump ("label", plan.label);
+ dump ("UUID", plan.UUID);
+ dump (plan.realizes);
+ dump_sequence ("implementation", plan.implementation);
+ dump_sequence ("instance", plan.instance);
+ //dump_sequence ("connection", plan.connection);
+ dump_sequence ("externalProperty", plan.externalProperty);
+ dump_sequence ("dependsOn", plan.dependsOn);
+ dump_sequence ("artifact", plan.artifact);
+ dump_sequence ("infoProperty", plan.infoProperty);
+ }
+
+ // ComponentPackageReference
+
+ void DnC_Dump::dump (const ::Deployment::ComponentPackageReference &cpr)
+ {
+ Dump_Obj dump_obj("ComponentPackageReference");
+
+ dump ("requiredUUID", cpr.requiredUUID);
+ dump ("requiredName", cpr.requiredName);
+ dump ("requiredType", cpr.requiredType.specificType);
+ }
+
+ // SubcomponentInstantiationDescription
+
+ void DnC_Dump::dump (const ::Deployment::SubcomponentInstantiationDescription &sid)
+ {
+ Dump_Obj dump_obj("SubcomponentInstantiationDescription");
+
+ dump ("name", sid.name);
+ // dump_sequence ("basePackage", sid.package);
+ dump_sequence ("configProperty", sid.configProperty);
+ dump_sequence ("selectRequirement", sid.selectRequirement);
+ // dump_sequence ("reference", sid.reference);
+ }
+
+ // SubcomponentPortEndpoint
+
+ void DnC_Dump::dump (const ::Deployment::SubcomponentPortEndpoint& spe)
+ {
+ Dump_Obj dump_obj("SubcomponentPortEndpoint");
+
+ dump ("portName", spe.portName);
+ int value = spe.instanceRef;
+ ::Deployment::ComponentAssemblyDescription *v;
+ const CORBA::Any &a =
+ Dump_Obj::desc ("ComponentAssemblyDescription");
+
+ a >>= v;
+
+ ACE_DEBUG ((LM_DEBUG, "%sinstance: %s\n", Dump_Obj::indent (),
+ v->instance[value].name.in ()));
+ }
+
+ // AssemblyConnectionDescription
+
+ void DnC_Dump::dump (const ::Deployment::AssemblyConnectionDescription &acd)
+ {
+ Dump_Obj dump_obj("AssemblyConnectionDescription");
+
+ dump ("name", acd.name);
+ dump_sequence ("deployRequirement", acd.deployRequirement);
+ dump_sequence ("externalEndpoint", acd.externalEndpoint);
+ dump_sequence ("internalEndpoint", acd.internalEndpoint);
+ dump_sequence ("externalReference", acd.externalReference);
+ }
+
+ // SubcomponentPropertyReference
+
+ void DnC_Dump::dump (const ::Deployment::SubcomponentPropertyReference &spr)
+ {
+ Dump_Obj dump_obj("SubcomponentPropertyReference");
+
+ dump ("propertyName", spr.propertyName);
+ int value = spr.instanceRef;
+
+ ::Deployment::ComponentAssemblyDescription *v;
+
+ const CORBA::Any &a =
+ Dump_Obj::desc ("ComponentAssemblyDescription");
+
+ a >>= v;
+
+ ACE_DEBUG ((LM_DEBUG, "%sinstance: %s\n", Dump_Obj::indent (),
+ v->instance[value].name.in ()));
+ }
+
+ void
+ DnC_Dump::dump (const ::Deployment::AssemblyPropertyMapping &apm)
+ {
+ Dump_Obj dump_obj("AssemblyPropertyMapping");
+
+ dump ("name", apm.name);
+ dump ("externalName", apm.externalName);
+ dump_sequence ("delegatesTo", apm.delegatesTo);
+ }
+
+ // ComponentAssemblyDescription
+
+ void DnC_Dump::dump (const ::Deployment::ComponentAssemblyDescription& cad)
+ {
+ CORBA::Any a;
+ a <<= cad;
+
+ Dump_Obj dump_obj ("ComponentAssemblyDescription",
+ a);
+
+ dump_sequence ("instance", cad.instance);
+ dump_sequence ("connection", cad.connection);
+ dump_sequence ("externalProperty", cad.externalProperty);
+ }
+
+ // ImplementationArtifactDescription
+
+ void DnC_Dump::dump (const ::Deployment::ImplementationArtifactDescription &iad)
+ {
+ Dump_Obj dump_obj("ImplementationArtifactDescription");
+
+ dump ("label", iad.label);
+ dump ("UUID", iad.UUID);
+ dump ("location", iad.location);
+ dump_sequence ("execParameter", iad.execParameter);
+ dump_sequence ("deployRequirement", iad.deployRequirement);
+ dump_sequence ("dependsOn", iad.dependsOn);
+ dump_sequence ("infoProperty", iad.infoProperty);
+ }
+
+ // NamedImplementationArtifact
+
+ void DnC_Dump::dump (const ::Deployment::NamedImplementationArtifact &nia)
+ {
+ Dump_Obj dump_obj("NamedImplementationArtifact");
+
+ dump ("name", nia.name);
+ dump (nia.referencedArtifact);
+ }
+
+ // ImplementationRequirement
+
+ void DnC_Dump::dump (const ::Deployment::ImplementationRequirement &ir)
+ {
+ Dump_Obj dump_obj("ImplementationRequirement");
+
+ dump_sequence ("resourceUsage", ir.resourceUsage);
+ dump ("resourcePort", ir.resourcePort);
+ dump ("componentPort", ir.componentPort);
+ dump ("resourceType", ir.resourceType);
+ dump ("name", ir.name);
+ dump_sequence ("property", ir.property);
+ }
+
+ // MonolithicImplementationDescription
+
+ void DnC_Dump::dump (const ::Deployment::MonolithicImplementationDescription
+ &mid)
+ {
+ Dump_Obj dump_obj("MonolithicImplementationDescription");
+
+ // dump_sequence ("execParameter", mid.execParameter);
+ dump_sequence ("primaryArtifact", mid.primaryArtifact);
+ dump_sequence ("deployRequirement", mid.deployRequirement);
+ }
+
+ void
+ DnC_Dump::dump (const ::Deployment::Capability &capability)
+ {
+ Dump_Obj dump_obj("Capability");
+
+ dump ("name", capability.name);
+ DnC_Dump::dump ("resourceType", capability.resourceType);
+ dump_sequence ("property",
+ capability.property);
+ }
+
+ // ComponentImplementationDescription
+
+ void DnC_Dump::dump (
+ const ::Deployment::ComponentImplementationDescription &cid)
+ {
+ Dump_Obj dump_obj("ComponentImplementationDescription");
+
+ dump ("label", cid.label);
+ dump ("UUID", cid.UUID);
+ ACE_DEBUG ((LM_DEBUG, "%sImplements:\n", Dump_Obj::indent()));
+ dump (cid.implements);
+ dump_sequence ("assemblyImpl", cid.assemblyImpl);
+ dump_sequence ("monolithicImpl", cid.monolithicImpl);
+ dump_sequence ("configProperty", cid.configProperty);
+ dump_sequence ("capability", cid.capability);
+ dump_sequence ("dependsOn", cid.dependsOn);
+ dump_sequence ("infoProperty", cid.infoProperty);
+ }
+
+ // PackagedComponentImplementation
+
+ void DnC_Dump::dump (const ::Deployment::PackagedComponentImplementation &pci)
+ {
+ Dump_Obj dump_obj("PackagedComponentImplementation");
+
+ dump ("Name", pci.name);
+ ACE_DEBUG ((LM_DEBUG,
+ "%sreferencedImplementation:\n", Dump_Obj::indent()));
+ DnC_Dump::dump (pci.referencedImplementation);
+ }
+
+ // ComponentPackageDescription
+
+ void DnC_Dump::dump (const ::Deployment::ComponentPackageDescription
+ &comppkgdesc)
+ {
+ Dump_Obj dump_obj("ComponentPackageDescription");
+
+ dump ("label", comppkgdesc.label);
+ dump ("UUID", comppkgdesc.UUID);
+ ACE_DEBUG ((LM_DEBUG, "%srealizes:\n", Dump_Obj::indent ()));
+ DnC_Dump::dump (comppkgdesc.realizes); // ComponentInterfaceDescription
+ dump_sequence ("configProperty", comppkgdesc.configProperty);
+ dump_sequence ("implementation", comppkgdesc.implementation);
+ dump_sequence ("infoProperty", comppkgdesc.infoProperty);
+ }
+
+ // PackageConfiguration
+
+ void DnC_Dump::dump (const ::Deployment::PackageConfiguration &pc)
+ {
+ Dump_Obj dump_obj("PackageConfiguration");
+
+ dump ("label", pc.label);
+ dump ("UUID", pc.UUID);
+ dump_sequence ("specializedConfig", pc.specializedConfig);
+ dump_sequence ("basePackage", pc.basePackage);
+ dump_sequence ("reference", pc.referencedPackage);
+ dump_sequence ("selectRequirement", pc.selectRequirement);
+ dump_sequence ("configProperty", pc.configProperty);
+ }
+
+ // Property
+ void DnC_Dump::dump (const Deployment::Property& property)
+ {
+ Dump_Obj dump_obj("Property");
+ dump ("name", property.name);
+ ACE_DEBUG ((LM_DEBUG, "%svalue:\n", Dump_Obj::indent()));
+ dump (property.value);
+ }
+
+ // CORBA::Any
+
+ void DnC_Dump::dump (const ::CORBA::Any &any)
+ {
+ ::CORBA::TypeCode * type = any.type ();
+ switch (type->kind ())
+ {
+ case CORBA::tk_short:
+ {
+ CORBA::Short temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC_Dump::dump (CORBA::Any), expected short\
+encoded different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %d\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_null:
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: null value encoded\n",
+ Dump_Obj::indent ()));
+ break;
+
+ case CORBA::tk_void:
+ ACE_DEBUG ((LM_DEBUG, "Any value: void type encoded\n"));
+ break;
+ case CORBA::tk_long:
+ {
+ CORBA::Long temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected long\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %d\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_ushort:
+ {
+ CORBA::UShort temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected u short\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %u\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_ulong:
+ {
+ CORBA::ULong temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected ulong\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %u\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_float:
+ {
+ CORBA::Float temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected float\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %f\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+ case CORBA::tk_double:
+ {
+ CORBA::Double temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected double\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %f\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+ case CORBA::tk_boolean:
+ {
+ CORBA::Boolean temp;
+ if (! (any >>= CORBA::Any::to_boolean (temp)))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected bool\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+
+ if (temp)
+ ACE_DEBUG ((LM_DEBUG, "Any value: True\n"));
+ else
+ ACE_DEBUG ((LM_DEBUG, "Any value: False\n"));
+ }
+ break;
+
+ case CORBA::tk_char:
+ {
+ CORBA::Char temp;
+ if (! (any >>= CORBA::Any::to_char (temp)))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected char\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %c\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_octet:
+ {
+ CORBA::Octet temp;
+ if (! (any >>= CORBA::Any::to_octet (temp)))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected octet\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %d\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_string:
+ {
+ const char * temp = 0;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected string\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %s\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+ case CORBA::tk_longlong:
+ {
+ CORBA::LongLong temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected longlong\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %l\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_longdouble:
+ {
+ CORBA::LongDouble temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected longdouble\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %d\n", Dump_Obj::indent (),
+ temp));
+ }
+
+ break;
+ case CORBA::tk_wchar:
+ {
+ CORBA::WChar temp;
+ if (! (any >>= CORBA::Any::to_wchar (temp)))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected wchar\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %c\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_wstring:
+ {
+ const CORBA::WChar * temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected wstring\
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_DEBUG, "%sAny value: %s\n", Dump_Obj::indent (),
+ temp));
+ }
+ break;
+
+ case CORBA::tk_enum:
+ {
+/* CORBA::Enum temp;
+ if (! (any >>= temp))
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC::dump (CORBA::Any) expected enum \
+encoded with different type"));
+ throw CORBA::INTERNAL ();
+ }
+*/ ACE_DEBUG ((LM_DEBUG, "%sAny value: some enum\n", Dump_Obj::indent ()));
+ }
+ break;
+
+ default:
+ ACE_DEBUG ((LM_DEBUG, "Unknown type encoded in Any\n"));
+ throw CORBA::INTERNAL ();
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.h b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.h
new file mode 100644
index 00000000000..4cddf38cc31
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump.h
@@ -0,0 +1,153 @@
+//==================================================================
+/**
+* @file DnC_Dump.h
+*
+* $Id$
+*
+* @author Gan Deng <gan.deng@vanderbilt.edu>
+*/
+//=====================================================================
+
+#ifndef DNC_DUMP_H
+#define DNC_DUMP_H
+#include /**/ "ace/pre.h"
+
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "DAnCE/Deployment/Deployment_TargetDataC.h"
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace Deployment
+{
+
+/**
+* @class DnC_Dump
+*
+* @brief This class defines a set of overloaded "dump" methods to print
+* the contents of various IDL data types, which passed as input.
+*/
+class Config_Handlers_Export DnC_Dump
+{
+public:
+/// Dump functions for CORBA sequences
+static void dump (const char* caption,
+const ::CORBA::StringSeq &str_seq);
+
+static void dump (const char* caption, const TAO::String_Manager& str);
+
+static void dump (const char* caption, const CORBA::Boolean& val);
+
+/// A whole slew of overloaded dump routines for different IDL
+/// data types.
+
+static void dump(const Deployment::SatisfierProperty &sp);
+
+static void dump (const Deployment::SharedResource& sr);
+
+static void dump (const Deployment::Node& node);
+
+static void dump (const Deployment::Resource& resource);
+
+static void dump (const Deployment::Interconnect& conn);
+
+static void dump (const Deployment::Bridge& bridge);
+
+static void dump (const ::Deployment::Property &property);
+
+static void dump (const ::Deployment::AssemblyConnectionDescription &acd);
+
+static void dump (const ::Deployment::AssemblyPropertyMapping &apm);
+
+static void dump (const ::Deployment::ComponentPackageDescription
+&comppkgdesc);
+
+static void dump (const ::Deployment::ComponentPortDescription
+&compportdesc);
+
+static void dump (const ::Deployment::ComponentPropertyDescription
+&comppropdesc);
+
+static void dump (const ::Deployment::MonolithicImplementationDescription
+&mid);
+
+static void dump (const ::Deployment::PackageConfiguration &pc);
+
+static void dump (const ::Deployment::PackagedComponentImplementation
+&pci);
+
+static void dump (const ::Deployment::SubcomponentPortEndpoint &spe);
+
+static void dump (const ::Deployment::Requirement &requirement);
+
+static void dump (const ::Deployment::ComponentExternalPortEndpoint
+&cepe);
+
+static void dump (const ::Deployment::ComponentPackageReference &cpr);
+
+static void dump (const ::Deployment::ComponentImplementationDescription
+&cid);
+
+static void dump (const ::Deployment::SubcomponentInstantiationDescription
+&sid);
+
+static void dump (const ::Deployment::NamedImplementationArtifact
+&named_implementation);
+
+static void dump (const ::Deployment::ComponentInterfaceDescription &cid);
+
+static void dump (const ::Deployment::SubcomponentPropertyReference
+&scpr);
+
+static void dump (const ::Deployment::ExternalReferenceEndpoint &ere);
+
+static void dump (const ::Deployment::Domain &domain);
+
+static void dump (const ::Deployment::Capability &capability);
+
+static void dump (const ::Deployment::ImplementationArtifactDescription
+&iad);
+
+static void dump (const ::Deployment::ImplementationRequirement &ir);
+
+static void dump(const Deployment::ResourceUsageKind &ruk);
+
+static void dump(const Deployment::DeploymentPlan &plan);
+
+static void dump(const Deployment::MonolithicDeploymentDescription &mdd);
+
+static void dump(const Deployment::InstanceDeploymentDescription &idd);
+
+static void dump(const Deployment::PlanConnectionDescription &pcd);
+
+static void dump(const Deployment::PlanPropertyMapping &ppm);
+
+static void dump(const Deployment::ImplementationDependency &id);
+
+static void dump(const Deployment::ArtifactDeploymentDescription &add);
+
+static void dump(const Deployment::InstanceResourceDeploymentDescription
+&irdd);
+
+static void dump(const PlanSubcomponentPortEndpoint &pspe);
+
+static void dump(const ConnectionResourceDeploymentDescription &crdd);
+
+static void dump(const PlanSubcomponentPropertyReference &pspr);
+
+static void dump(const ResourceDeploymentDescription &rdd);
+
+static void dump (const ::Deployment::ComponentAssemblyDescription& cad);
+
+private:
+static void dump (const ::CORBA::Any &any);
+// Helper function to print an Any
+};
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* DNC_DUMP_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.cpp b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.cpp
new file mode 100644
index 00000000000..0f95945fb0f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.cpp
@@ -0,0 +1,90 @@
+// $Id$
+#ifndef DNC_DUMP_T_C
+#define DNC_DUMP_T_C
+#include "DnC_Dump.h"
+#include "DnC_Dump_T.h"
+#include "Dump_Obj.h"
+
+ACE_RCSID (Config_Handlers,
+ DnC_Dump_T,
+ "$Id$")
+ namespace Deployment
+ {
+ namespace DnC_Dump_T
+ {
+ // Dumps a reference
+ template <typename ROOT, typename REFERENCE, typename DATA_TYPE,
+ typename CLASS>
+ void
+ dump_ref (const char* caption, REFERENCE& ref,
+ const char* root, DATA_TYPE CLASS::*data)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s%s:\n",
+ Dump_Obj::indent(), caption));
+
+ const CORBA::Any &val = Dump_Obj::desc (root);
+
+ ROOT *t = 0;
+
+ val >>= t;
+
+ const ROOT &root_obj = *t;
+
+ int value = ref;
+ ACE_DEBUG ((LM_DEBUG, "%s%s.name: %s\n",
+ Dump_Obj::indent(), caption,
+ (root_obj.*data)[value].name.in()));
+ }
+
+ // Dumps a reference sequence
+ template <typename ROOT, typename SEQUENCE, typename DATA_TYPE,
+ typename CLASS>
+ void
+ dump_ref_seq (const char* caption, SEQUENCE& seq,
+ const char* root, DATA_TYPE CLASS::*data)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%s%s:\n",
+ Dump_Obj::indent(), caption));
+
+ CORBA::Any val;
+ val <<= root;
+
+ for (size_t i = 0; i < seq.length(); ++i)
+ {
+ const CORBA::Any &val = Dump_Obj::desc (root);
+
+ ROOT *t = 0;
+
+ val >>= t;
+
+ const ROOT &root_obj = *t;
+ int value = seq[i];
+ ACE_DEBUG ((LM_DEBUG, "%s%s[%d].name: %s\n",
+ Dump_Obj::indent(), caption, i,
+ (root_obj.*data)[value].name.in()));
+ }
+ }
+
+ // Dumps a sequence
+ template <typename SEQUENCE>
+ void
+ dump_sequence (const char* caption, const SEQUENCE &seq)
+ {
+ CORBA::ULong size = seq.length ();
+
+ if (size != 0)
+ {
+ Dump_Obj dump_obj(caption);
+
+ for (CORBA::ULong i = 0; i < size; ++i)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s%s %d:\n", Dump_Obj::indent(),
+ caption, i));
+ DnC_Dump::dump (seq[i]);
+ }
+ }
+ }
+ }
+ }
+#endif /* DNC_DUMP_C */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.h b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.h
new file mode 100644
index 00000000000..88a5c55f3cd
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DnC_Dump_T.h
@@ -0,0 +1,50 @@
+//==================================================================
+/**
+* @file DnC_Dump_T.h
+*
+* $Id$
+*
+* @author Gan Deng <gan.deng@vanderbilt.edu>
+*/
+//=====================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_DNC_DUMP_T_H
+#define CIAO_CONFIG_HANDLERS_DNC_DUMP_T_H
+#include /**/ "ace/pre.h"
+
+#include "ace/config-lite.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+namespace DnC_Dump_T
+{
+template <typename SEQUENCE>
+void dump_sequence (const char* caption, const SEQUENCE &seq);
+
+template <typename ROOT, typename SEQUENCE,
+typename DATA_TYPE, typename CLASS>
+void dump_ref_seq (const char* caption, SEQUENCE& seq,
+const char* root, DATA_TYPE CLASS::*data);
+
+template <typename ROOT, typename REFERENCE, typename DATA_TYPE,
+typename CLASS>
+void dump_ref (const char* caption, REFERENCE& ref,
+const char* root, DATA_TYPE CLASS::*data);
+}
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "DnC_Dump_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("DnC_Dump_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_CONFIG_HANDLERS_DNC_DUMP_T_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.cpp b/modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.cpp
new file mode 100644
index 00000000000..b2cc34fd089
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.cpp
@@ -0,0 +1,65 @@
+// $Id$
+#include "Dump_Obj.h"
+#include "ace/Log_Msg.h"
+
+ACE_RCSID (Config_Handlers,
+ Dump_Obj,
+ "$Id$")
+
+ namespace Deployment
+ {
+ // static member initialization
+ std::string Dump_Obj::indent_ = "-";
+ std::map<std::string, CORBA::Any> Dump_Obj::desc_map_;
+
+ Dump_Obj::Dump_Obj(const char* caption)
+ : desc_()
+ {
+ ACE_DEBUG ((LM_DEBUG, "%C%C:\n", indent_.c_str(), caption));
+ indent_.append(" ");
+ }
+
+
+ Dump_Obj::Dump_Obj(const char* caption,
+ CORBA::Any &val)
+ : desc_(caption)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%C%C:\n",
+ indent_.c_str(),
+ caption));
+
+ indent_.append(" ");
+
+ if (desc_map_.find (std::string (caption)) != desc_map_.end())
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC_Dump.cpp:Dump_Obj - \
+The item with name %C is already in \
+the node map.\n", caption));
+ throw Node_Exist();
+ }
+ else
+ {
+ desc_map_[std::string(caption)] = val;
+ }
+ }
+
+ Dump_Obj::~Dump_Obj()
+ {
+ indent_.erase(indent_.size() - 2, 2);
+ if (desc_.size() != 0)
+ {
+ if (desc_map_.find(desc_) != desc_map_.end())
+ {
+ desc_map_.erase(desc_map_.find(desc_));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "DnC_Dump.cpp:Dump_Obj - \
+The item with name %C is not in the node map.\n",
+ desc_.c_str()));
+ throw Node_Not_Exist();
+ }
+ }
+ }
+
+ }
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.h b/modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.h
new file mode 100644
index 00000000000..babffe43bac
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Dump_Obj.h
@@ -0,0 +1,77 @@
+//==================================================================
+/**
+* @file Dump_Obj.h
+*
+* $Id$
+*
+* @author Gan Deng <gan.deng@vanderbilt.edu>
+*/
+//=====================================================================
+
+#ifndef CIAO_DUMP_OBJ_H
+#define CIAO_DUMP_OBJ_H
+#include /**/ "ace/pre.h"
+
+#include "DAnCE/Deployment/DeploymentC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Config_Handlers_Export.h"
+#include "tao/AnyTypeCode/Any.h"
+#include <string>
+#include <map>
+
+namespace Deployment
+{
+/*
+* @brief class Dump_Obj handles the indentation and keeps a map of
+* structures for reference look-up.
+*/
+class Config_Handlers_Export Dump_Obj
+{
+ public:
+ /// Exception thrown when there is a node with the same name in the
+ /// map
+ class Node_Exist { };
+
+ /// Exception thrown when there is no node with the name given in
+ /// the map
+ class Node_Not_Exist { };
+
+ /// Constructors prints out the caption and increases indent
+ Dump_Obj (const char *caption);
+
+ /// Additionally insets @a val into the map
+ Dump_Obj (const char* caption, CORBA::Any &val);
+
+ /// Destructor
+ ~Dump_Obj (void);
+
+ /// return the indent string
+ static const char* indent()
+ {
+ return indent_.c_str();
+ }
+
+ static CORBA::Any& desc(const char* caption)
+ {
+ return desc_map_[caption];
+ }
+
+private:
+ /// indent string
+ static std::string indent_;
+
+ /// map for reference lookup
+ static std::map<std::string, CORBA::Any> desc_map_;
+
+ /// descriptor - used by destructor for deleting the
+ /// correct descriptor from the map
+ std::string desc_;
+};
+}
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_DUMP_OBJ_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.cpp
new file mode 100644
index 00000000000..0e2bfe0e411
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.cpp
@@ -0,0 +1,181 @@
+//$Id$
+
+#include "DataType_Handler.h"
+#include "tao/AnyTypeCode/TypeCode.h"
+
+namespace CIAO{
+
+ namespace Config_Handlers{
+
+ DataType_Handler::DataType_Handler (void)
+ {
+ }
+ DataType_Handler::~DataType_Handler (void)
+ {
+ }
+
+ ///This method takes a <CIAO::Config_Handlers::DataType>
+ ///and returns the corresponding CORBA::TypeCode.
+ CORBA::TypeCode_ptr
+ DataType_Handler::data_type (const DataType& desc)
+ {
+
+ TCKind kind (desc.kind ());
+
+ switch (kind.integral ())
+ {
+ case TCKind::tk_null_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_null);
+
+
+ case TCKind::tk_short_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_short);
+
+
+ case TCKind::tk_long_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_long);
+
+
+ case TCKind::tk_ushort_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_ushort);
+
+
+ case TCKind::tk_ulong_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_ulong);
+
+
+ case TCKind::tk_float_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_float);
+
+
+ case TCKind::tk_double_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_double);
+
+
+ case TCKind::tk_boolean_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_boolean);
+
+
+ case TCKind::tk_char_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_char);
+
+
+ case TCKind::tk_octet_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_octet);
+
+
+ case TCKind::tk_string_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_string);
+
+
+ case TCKind::tk_longlong_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_longlong);
+
+
+ case TCKind::tk_ulonglong_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_ulonglong);
+
+
+ case TCKind::tk_longdouble_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_longdouble);
+
+
+ case TCKind::tk_wchar_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_wchar);
+
+
+ case TCKind::tk_wstring_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_wstring);
+
+
+ case TCKind::tk_any_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_any);
+
+
+ case TCKind::tk_TypeCode_l:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_TypeCode);
+
+
+ default:
+ ACE_ERROR ((LM_ERROR, "Invalid typecode in any\n"));
+ throw Config_Error ("", "Invalid typecode");
+ }
+
+ // This case used to be supported...is it not in the schema?
+ // case TCKind::tk_Object)
+ // return CORBA::TypeCode::_duplicate (CORBA::_tc_Object);*/
+
+ }
+
+ DataType
+ DataType_Handler::data_type (
+ const CORBA::TypeCode_ptr& src)
+ {
+ DataType type;
+
+ switch (src->kind ())
+ {
+ case ::CORBA::tk_null:
+ type.kind (TCKind::tk_null);
+ break;
+ case CORBA::tk_short:
+ type.kind (TCKind::tk_short);
+ break;
+ case CORBA::tk_long:
+ type.kind (TCKind::tk_long);
+ break;
+ case CORBA::tk_ushort:
+ type.kind (TCKind::tk_ushort);
+ break;
+ case CORBA::tk_ulong:
+ type.kind (TCKind::tk_ulong);
+ break;
+ case CORBA::tk_float:
+ type.kind (TCKind::tk_float);
+ break;
+ case CORBA::tk_double:
+ type.kind (TCKind::tk_double);
+ break;
+ case CORBA::tk_boolean:
+ type.kind (TCKind::tk_boolean);
+ break;
+ case CORBA::tk_char:
+ type.kind (TCKind::tk_char);
+ break;
+ case CORBA::tk_octet:
+ type.kind (TCKind::tk_octet);
+ break;
+ case CORBA::tk_string:
+ type.kind (TCKind::tk_string);
+ break;
+ case CORBA::tk_longlong:
+ type.kind (TCKind::tk_longlong);
+ break;
+ case CORBA::tk_ulonglong:
+ type.kind (TCKind::tk_ulonglong);
+ break;
+ case CORBA::tk_longdouble:
+ type.kind (TCKind::tk_longdouble);
+ break;
+ case CORBA::tk_wchar:
+ type.kind (TCKind::tk_wchar);
+ break;
+ case CORBA::tk_wstring:
+ type.kind (TCKind::tk_wstring);
+ break;
+ case CORBA::tk_any:
+ type.kind (TCKind::tk_any);
+ break;
+ case CORBA::tk_TypeCode:
+ type.kind (TCKind::tk_TypeCode);
+ default:
+ ACE_ERROR ((LM_ERROR, "Invalid typecode\n"));
+ throw Config_Error ("", "Invalid typecode");
+ }
+
+ return type;
+ }
+
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.h
new file mode 100644
index 00000000000..c16b4b21fe3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DataType_Handler.h
@@ -0,0 +1,60 @@
+//================================================
+/**
+ * @file DataType_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef DATATYPE_HANDLER_H
+#define DATATYPE_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ciao/DeploymentC.h"
+#include "Basic_Deployment_Data.hpp"
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace CIAO{
+
+ namespace Config_Handlers{
+
+ /*
+ * @class DataType_Handler
+ *
+ * @brief Handler class for <ComponentPortDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+
+ class DataType_Handler{
+
+ public:
+
+ DataType_Handler (void);
+ virtual ~DataType_Handler (void);
+
+ ////This method takes a <CIAO::Config_Handlers::DataType>
+ ///and returns the corresponding CORBA::TypeCode.
+ static void
+ data_type (CORBA::TypeCode_ptr& type,
+ const DataType& desc);
+
+ static DataType data_type (const CORBA::TypeCode_ptr& type);
+ };
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* DATATYPE_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp
new file mode 100644
index 00000000000..a16e5c882c1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp
@@ -0,0 +1,195 @@
+// $Id$
+
+#include "DynAlias_Handler.h"
+#include "DynAny_Handler.h"
+
+#include "Basic_Deployment_Data.hpp"
+#include "Common.h"
+
+#include "tao/AnyTypeCode/TypeCode.h"
+#include "tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.h"
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "tao/AnyTypeCode/Enum_TypeCode.h"
+#include "tao/IFR_Client/IFR_BasicC.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ DynamicAny::DynAny_ptr
+ DynAlias_Handler::extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr req_tc)
+ {
+ try
+ {
+ CORBA::TypeCode_ptr tc;
+
+ if (req_tc)
+ tc = req_tc;
+ else
+ tc = DynAlias_Handler::create_typecode (type);
+
+ // Make the actual DynAlias
+ // DynamicAny::DynAny_var retval =
+ //DYNANY_HANDLER->daf ()->create_dyn_any_from_type_code (tc);
+ // DynamicAny::DynAlias_var retval = DynamicAny::DynAlias::_narrow (temp.in ());
+
+ DynamicAny::DynAny_var alias = DYNANY_HANDLER->extract_into_dynany (type.alias ().elementType (), value, tc);
+ return alias._retn ();
+ /*
+ switch (type.kind ().integral ())
+ {
+ // ========== BASIC TYPES
+ case TCKind::tk_null_l:
+ case TCKind::tk_void_l:
+ ACE_ERROR ((LM_WARNING, "I don't know how to handle null or void types\n"));
+
+ case TCKind::tk_short_l:
+ retval->insert_short (CORBA::Short (static_cast < ::XMLSchema::short_ const & > (*value.begin_short ())));
+ break;
+
+ case TCKind::tk_long_l:
+ retval->insert_long (CORBA::Long (static_cast < ::XMLSchema::int_ const& > (*value.begin_long ())));
+ break;
+
+ case TCKind::tk_ushort_l:
+ retval->insert_ushort (CORBA::UShort (static_cast< ::XMLSchema::unsignedShort const & > (*value.begin_ushort ())));
+ break;
+
+ case TCKind::tk_ulong_l:
+ retval->insert_ulong (CORBA::ULong (static_cast < ::XMLSchema::unsignedInt const& > (*value.begin_ulong ())));
+ break;
+
+ case TCKind::tk_float_l:
+ retval->insert_float (CORBA::Float (*value.begin_float ()));
+ break;
+
+ case TCKind::tk_double_l:
+ retval->insert_double (CORBA::Double (*value.begin_double ()));
+ break;
+
+ case TCKind::tk_boolean_l:
+ retval->insert_boolean (static_cast < ::XMLSchema::boolean const& > (*value.begin_boolean ()));
+ break;
+
+ case TCKind::tk_char_l:
+ retval->insert_char (CORBA::Char (*value.begin_string ()->c_str ()));
+ break;
+
+ case TCKind::tk_octet_l:
+ retval->insert_octet (static_cast <const unsigned char &> (*value.begin_octet ()));
+ break;
+
+ case TCKind::tk_string_l:
+ retval->insert_string (value.begin_string ()->c_str ());
+ break;
+
+ case TCKind::tk_longlong_l:
+ retval->insert_longlong (CORBA::LongLong (static_cast < ::XMLSchema::long_ const& > (*value.begin_longlong ())));
+ break;
+
+ case TCKind::tk_ulonglong_l:
+ retval->insert_ulonglong (CORBA::ULongLong (static_cast < ::XMLSchema::unsignedLong const& > (*value.begin_ulonglong ())));
+ break;
+
+ case TCKind::tk_wchar_l:
+ retval->insert_wchar (CORBA::WChar (*value.begin_string ()->c_str ()));
+ break;
+
+ case TCKind::tk_enum_l:
+ return DynEnum_Handler::extract_into_dynany (type, value);
+
+ case TCKind::tk_sequence_l:
+ return DynSequence_Handler::extract_into_dynany (type, value);
+
+ case TCKind::tk_struct_l:
+ return DynStruct_Handler::extract_into_dynany (type, value);
+
+ case TCKind::tk_alias_l:
+ return DynAlias_Handler::extract_into_dynany (type, value);
+
+ case TCKind::tk_longdouble_l:
+ case TCKind::tk_wstring_l:
+ case TCKind::tk_wfixed_l:
+ case TCKind::tk_any_l:
+ case TCKind::tk_TypeCode_l:
+ case TCKind::tk_Principal_l:
+ case TCKind::tk_objref_l:
+ case TCKind::tk_union_l:
+ case TCKind::tk_array_l:
+ case TCKind::tk_except_l:
+ case TCKind::tk_value_l:
+ case TCKind::tk_value_box_l:
+ case TCKind::tk_native_l:
+ case TCKind::tk_abstract_interface_l:
+ case TCKind::tk_local_interface_l:
+ case TCKind::tk_component_l:
+ case TCKind::tk_home_l:
+ case TCKind::tk_event_l:
+ ACE_ERROR ((LM_ERROR, "Type not supported\n"));
+ throw Config_Error ("", "Type not supported");
+ }
+ */
+ // retval->assign (alias);
+
+ // return retval._retn ();
+ }
+ catch (DynamicAny::DynAny::InvalidValue)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Invalid value provided in XML when trying to ")
+ ACE_TEXT ("initialize an instance of enumerated type %s\n"),
+ type.alias ().typeId ().c_str ()));
+ throw Config_Error (type.alias ().typeId (),
+ ACE_TEXT ("Invalid value provided in XML"));
+ }
+ catch (Config_Error &ex)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DynAlias_Handler caught Config_Error\n")));
+ if (type.alias_p ())
+ ex.add_name (type.alias ().typeId ());
+
+ throw ex;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DynAlias_Handler caught unknown exception\n")));
+ throw Config_Error (type.alias ().typeId (),
+ ACE_TEXT ("Unknown exception"));
+ }
+ }
+
+ void
+ DynAlias_Handler::extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn)
+ {
+ ACE_UNUSED_ARG (dyn);
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Extracting Enums not yet supported\n")));
+ }
+
+ CORBA::TypeCode_ptr
+ DynAlias_Handler::create_typecode (const DataType &type)
+ {
+ if (!type.alias_p ())
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Alias type description required")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Did not find expected alias type description, tk_kind may be wrong."));
+ }
+
+
+ // @@ Leak this guy onto the heap to avoid a compile problem.
+ CORBA::TypeCode_ptr tc =
+ DYNANY_HANDLER->orb ()->create_alias_tc
+ (ACE_TEXT_ALWAYS_CHAR (type.alias ().typeId ().c_str ()),
+ ACE_TEXT_ALWAYS_CHAR (type.alias ().name ().c_str ()),
+ DYNANY_HANDLER->create_typecode (type.alias ().elementType ()));
+
+ DYNANY_HANDLER->register_typecode (type.alias ().typeId (),
+ tc);
+
+ return tc;
+ }
+
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.h
new file mode 100644
index 00000000000..b5bca3c7377
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAlias_Handler.h
@@ -0,0 +1,52 @@
+/**
+ * $Id$
+ *
+ * @file DynAlias_Handler.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_CONFIG_HANDLERS_DYNALIAS_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DYNALIAS_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "DynAny_Handler_Export.h"
+
+#include "tao/ORB.h"
+#include "tao/DynamicAny/DynamicAny.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Any;
+ class DataType;
+ class DataValue;
+
+ /**
+ * @class DynAlias_Handler
+ * @brief Translates enums specified in deployment plans into Dynamic Anys
+ *
+ */
+ class DynAlias_Handler
+ {
+ public:
+ static DynamicAny::DynAny_ptr extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr = 0);
+
+ static void extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn);
+
+ static CORBA::TypeCode_ptr create_typecode (const DataType &type);
+ };
+
+ }
+}
+
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_DYNENUM_HANDLER_H*/
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
new file mode 100644
index 00000000000..0998d5c5cca
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
@@ -0,0 +1,381 @@
+// $Id$
+
+#include /**/ "ace/pre.h"
+
+#include "DynAny_Handler.h"
+#include "DynEnum_Handler.h"
+#include "DynSequence_Handler.h"
+#include "DynStruct_Handler.h"
+#include "DynAlias_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "Common.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ DynAny_Handler::DynAny_Handler (void) :
+ orb_ (0),
+ daf_ (0)
+ {
+ int argc = 0;
+ char **argv = 0;
+
+ orb_ = CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var temp = orb_->resolve_initial_references ("DynAnyFactory");
+ daf_ = DynamicAny::DynAnyFactory::_narrow (temp.in ());
+
+ if (CORBA::is_nil (daf_.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to narrow Dynamic Any factory\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Unable to narrow DynAny factory"));
+ }
+ }
+
+ DynAny_Handler::~DynAny_Handler (void)
+ {
+ }
+
+ CORBA::ORB_ptr
+ DynAny_Handler::orb ()
+ {
+ return orb_.in ();
+ }
+
+ DynamicAny::DynAnyFactory_ptr
+ DynAny_Handler::daf ()
+ {
+ return daf_.in ();
+ }
+
+ DynamicAny::DynAny_ptr
+ DynAny_Handler::extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr req_tc)
+ {
+ DynamicAny::DynAny_var retval;
+
+ if (req_tc)
+ retval = this->daf_->create_dyn_any_from_type_code (req_tc);
+
+ switch (type.kind ().integral ())
+ {
+ // ========== BASIC TYPES
+ case TCKind::tk_null_l:
+ case TCKind::tk_void_l:
+ ACE_ERROR ((LM_WARNING, ACE_TEXT ("I don't know how to handle null or void types\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Null or void types not supported"));
+ break;
+
+ case TCKind::tk_short_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_short);
+ retval->insert_short (CORBA::Short (static_cast < ::XMLSchema::short_ const & > (*(*value.begin_short ()))));
+ break;
+
+ case TCKind::tk_long_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_long);
+ retval->insert_long (CORBA::Long (static_cast < ::XMLSchema::int_ const& > (*(*value.begin_long ()))));
+ break;
+
+ case TCKind::tk_ushort_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_ushort);
+ retval->insert_ushort (CORBA::UShort (static_cast< ::XMLSchema::unsignedShort const & > (*(*value.begin_ushort ()))));
+ break;
+
+ case TCKind::tk_ulong_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_ulong);
+ retval->insert_ulong (CORBA::ULong (static_cast < ::XMLSchema::unsignedInt const& > (*(*value.begin_ulong ()))));
+ break;
+
+ case TCKind::tk_float_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_float);
+ retval->insert_float (CORBA::Float (*(*value.begin_float ())));
+ break;
+
+ case TCKind::tk_double_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_double);
+ retval->insert_double (CORBA::Double (*(*value.begin_double ())));
+ break;
+
+ case TCKind::tk_boolean_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_boolean);
+ retval->insert_boolean (static_cast < ::XMLSchema::boolean const& > (*(*value.begin_boolean ())));
+ break;
+
+ case TCKind::tk_char_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_char);
+ retval->insert_char (CORBA::Char (*(*value.begin_string ())->c_str ()));
+ break;
+
+ case TCKind::tk_octet_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_octet);
+ retval->insert_octet (static_cast <const unsigned char &> (*(*(value.begin_octet ()))));
+ break;
+
+ case TCKind::tk_string_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_string);
+ retval->insert_string (ACE_TEXT_ALWAYS_CHAR ((*value.begin_string ())->c_str ()));
+ break;
+
+ case TCKind::tk_longlong_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_longlong);
+ retval->insert_longlong (CORBA::LongLong (static_cast < ::XMLSchema::long_ const& > (*(*value.begin_longlong ()))));
+ break;
+
+ case TCKind::tk_ulonglong_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_ulonglong);
+ retval->insert_ulonglong (CORBA::ULongLong (static_cast < ::XMLSchema::unsignedLong const& > (*(*value.begin_ulonglong ()))));
+ break;
+
+ case TCKind::tk_wchar_l:
+ if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_wchar);
+ retval->insert_wchar (CORBA::WChar (*(*value.begin_string ())->c_str ()));
+ break;
+
+ case TCKind::tk_enum_l:
+ return DynEnum_Handler::extract_into_dynany (type, value, req_tc);
+
+ case TCKind::tk_sequence_l:
+ return DynSequence_Handler::extract_into_dynany (type, value, req_tc);
+
+ case TCKind::tk_struct_l:
+ return DynStruct_Handler::extract_into_dynany (type, value, req_tc);
+
+ case TCKind::tk_alias_l:
+ return DynAlias_Handler::extract_into_dynany (type, value, req_tc);
+
+ case TCKind::tk_longdouble_l:
+ case TCKind::tk_wstring_l:
+ case TCKind::tk_fixed_l:
+ case TCKind::tk_any_l:
+ case TCKind::tk_TypeCode_l:
+ case TCKind::tk_Principal_l:
+ case TCKind::tk_objref_l:
+ case TCKind::tk_union_l:
+ case TCKind::tk_array_l:
+ case TCKind::tk_except_l:
+ case TCKind::tk_value_l:
+ case TCKind::tk_value_box_l:
+ case TCKind::tk_native_l:
+ case TCKind::tk_abstract_interface_l:
+ case TCKind::tk_local_interface_l:
+ case TCKind::tk_component_l:
+ case TCKind::tk_home_l:
+ case TCKind::tk_event_l:
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Type not supported\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Type not supported"));
+ }
+
+ return retval._retn ();
+ }
+
+ Any
+ DynAny_Handler::extract_from_dynany (const CORBA::Any &any)
+ {
+ DynamicAny::DynAny_var dyn = this->daf_->create_dyn_any (any);
+
+ DataValue val;
+#if 0
+ switch (dyn->type ()->kind ())
+ {
+ case CORBA::tk_short:
+ val.add_short (dyn->get_short ());
+ return Any (TCKind::tk_short, val);
+
+ case CORBA::tk_long:
+ val.add_long (dyn->get_long ());
+ return Any (TCKind::tk_long, val);
+
+ case CORBA::tk_ushort:
+ val.add_ushort (dyn->get_ushort ());
+ return Any (TCKind::tk_ushort, val);
+
+ case CORBA::tk_ulong:
+ val.add_ulong (dyn->get_ulong ());
+ return Any (TCKind::tk_ulong, val);
+
+ case CORBA::tk_float:
+ val.add_float (dyn->get_float ());
+ return Any (TCKind::tk_float, val);
+
+ case CORBA::tk_double:
+ val.add_double (dyn->get_double ());
+ return Any (TCKind::tk_double, val);
+
+ case CORBA::tk_boolean:
+ val.add_boolean (dyn->get_boolean ());
+ return Any (TCKind::tk_boolean, val);
+
+ case CORBA::tk_octet:
+ val.add_octet (dyn->get_octet ());
+ return Any (TCKind::tk_octet, val);
+
+ case CORBA::tk_string:
+ val.add_string (dyn->get_string ());
+ return Any (TCKind::tk_string, val);
+
+ case CORBA::tk_longlong:
+ val.add_longlong (dyn->get_longlong ());
+ return Any (TCKind::tk_longlong, val);
+
+ case CORBA::tk_ulonglong:
+ val.add_ulonglong (dyn->get_ulonglong ());
+ return Any (TCKind::tk_ulonglong, val);
+
+ case CORBA::tk_longdouble:
+ // return Any (TCKind::tk_longdouble);
+ // @@MAJO: Need to add longdouble to schema.
+ //val.add_longdouble (dyn->get_longdouble ());
+
+ case CORBA::tk_wchar:
+ // return Any (TCKind::tk_wchar);
+ // @@MAJO: Need to add wchar to schema
+ // val.add_wchar (dyn->get_wchar ());
+ case CORBA::tk_char:
+ // return Any (TCKind::tk_char);
+ // @@MAJO: Need to add char into the schema.
+ // val.add_char (dyn->get_char ());
+
+ case CORBA::tk_wstring:
+ case CORBA::tk_any:
+ case CORBA::tk_TypeCode:
+ case ::CORBA::tk_null:
+ default:
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DynAny_Handler: I have no idea how to perform a referse mapping.\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("reverse mapping for this type not supported"));
+ }
+#endif
+ Any retval (TCKind::tk_char, val);
+ return retval;
+ }
+
+ CORBA::TypeCode_ptr
+ DynAny_Handler::create_typecode (const DataType &type)
+ {
+
+ switch (type.kind ().integral ())
+ {
+ // ========== BASIC TYPES
+ case TCKind::tk_null_l:
+ case TCKind::tk_void_l:
+ ACE_ERROR ((LM_WARNING, ACE_TEXT ("I don't know how to handle null or void types\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Null or void types not supported"));
+ break;
+
+ case TCKind::tk_short_l:
+ return CORBA::_tc_short;
+ break;
+
+ case TCKind::tk_long_l:
+ return CORBA::_tc_long;
+ break;
+
+ case TCKind::tk_ushort_l:
+ return CORBA::_tc_ushort;
+ break;
+
+ case TCKind::tk_ulong_l:
+ return CORBA::_tc_ulong;
+ break;
+
+ case TCKind::tk_float_l:
+ return CORBA::_tc_float;
+ break;
+
+ case TCKind::tk_double_l:
+ return CORBA::_tc_double;
+ break;
+
+ case TCKind::tk_boolean_l:
+ return CORBA::_tc_boolean;
+ break;
+
+ case TCKind::tk_char_l:
+ return CORBA::_tc_char;
+ break;
+
+ case TCKind::tk_octet_l:
+ return CORBA::_tc_octet;
+ break;
+
+ case TCKind::tk_string_l:
+ return CORBA::_tc_string;
+ break;
+
+ case TCKind::tk_longlong_l:
+ return CORBA::_tc_longlong;
+ break;
+
+ case TCKind::tk_ulonglong_l:
+ return CORBA::_tc_ulonglong;
+ break;
+
+ case TCKind::tk_longdouble_l:
+ break;
+
+ case TCKind::tk_wchar_l:
+ return CORBA::_tc_wchar;
+ break;
+
+ case TCKind::tk_wstring_l:
+ break;
+
+ case TCKind::tk_enum_l:
+ return DynEnum_Handler::create_typecode (type);
+
+ case TCKind::tk_struct_l:
+ return DynStruct_Handler::create_typecode (type);
+
+ case TCKind::tk_sequence_l:
+ return DynSequence_Handler::create_typecode (type);
+
+ case TCKind::tk_alias_l:
+ return DynAlias_Handler::create_typecode (type);
+
+ case TCKind::tk_fixed_l:
+ case TCKind::tk_any_l:
+ case TCKind::tk_TypeCode_l:
+ case TCKind::tk_Principal_l:
+ case TCKind::tk_objref_l:
+ case TCKind::tk_union_l:
+ case TCKind::tk_array_l:
+ case TCKind::tk_except_l:
+ case TCKind::tk_value_l:
+ case TCKind::tk_value_box_l:
+ case TCKind::tk_native_l:
+ case TCKind::tk_abstract_interface_l:
+ case TCKind::tk_local_interface_l:
+ case TCKind::tk_component_l:
+ case TCKind::tk_home_l:
+ case TCKind::tk_event_l:
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Type not supported\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Type not supported"));
+ }
+
+ return 0;
+ }
+
+ void
+ DynAny_Handler::register_typecode (const std::basic_string<ACE_TCHAR> typeID,
+ CORBA::TypeCode_ptr tc)
+ {
+ this->typecode_map_[typeID] = tc;
+ }
+
+
+ CORBA::TypeCode_ptr
+ DynAny_Handler::get_typecode (const std::basic_string<ACE_TCHAR> typeID)
+ {
+ try
+ {
+ return this->typecode_map_ [typeID];
+ }
+ catch (...)
+ {
+ return 0;
+ }
+ }
+ }
+}
+#include /**/ "ace/post.h"
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.h
new file mode 100644
index 00000000000..d0cf66e9c32
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.h
@@ -0,0 +1,85 @@
+//==============================================================
+/**
+ * @file DynAny_Handler.h
+ *
+ * $Id$
+ *
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_DYNANY_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DYNANY_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "DynAny_Handler_Export.h"
+
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "tao/ORB.h"
+#include "tao/DynamicAny/DynamicAny.h"
+#include "ace/Singleton.h"
+
+#include <map>
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Any;
+ class DataType;
+ class DataValue;
+
+ /**
+ * @class Any_Handler
+ *
+ * @brief Handler class for <ComponentInterfaceDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC Any objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL Any type.
+ *
+ */
+ class DynAny_Handler_Export DynAny_Handler
+ {
+ public:
+ DynAny_Handler ();
+
+ ~DynAny_Handler (void);
+
+ DynamicAny::DynAny_ptr extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr = 0);
+
+ Any extract_from_dynany (const CORBA::Any &any);
+
+ CORBA::ORB_ptr orb ();
+
+ DynamicAny::DynAnyFactory_ptr daf ();
+
+ CORBA::TypeCode_ptr create_typecode (const DataType &type);
+
+ void register_typecode (const std::basic_string<ACE_TCHAR> typeID,
+ CORBA::TypeCode_ptr tc);
+
+ CORBA::TypeCode_ptr get_typecode (const std::basic_string<ACE_TCHAR> typeID);
+
+ private:
+
+ CORBA::ORB_var orb_;
+
+ DynamicAny::DynAnyFactory_var daf_;
+
+ std::map <std::basic_string<ACE_TCHAR>, CORBA::TypeCode_ptr> typecode_map_;
+ };
+
+ typedef ACE_Singleton<DynAny_Handler, ACE_Null_Mutex> DynAny_Singleton;
+ #define DYNANY_HANDLER DynAny_Singleton::instance()
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_ANY_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.mpc b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.mpc
new file mode 100644
index 00000000000..1004dde9243
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler.mpc
@@ -0,0 +1,22 @@
+// $Id$
+
+project (XSC_DynAny_Handler) : xerces, dynamicany, typecodefactory, dance_deployment_stub, \
+ dance_config_handlers_base, dance_lib, dance, ifr_client {
+ after += XSC_XML_Handlers
+ libs += XSC_XML_Handlers
+ dynamicflags += DYNANY_HANDLER_BUILD_DLL
+ macros += XML_USE_PTHREADS
+ includes += $(DANCE_ROOT)/Config_Handlers
+
+ Source_Files {
+ DynAny_Handler.cpp
+ DynEnum_Handler.cpp
+ DynSequence_Handler.cpp
+ DynStruct_Handler.cpp
+ DynAlias_Handler.cpp
+ }
+
+ Header_Files {
+ DynAny_Handler_Export.h
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h
new file mode 100644
index 00000000000..78a3ee57b77
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DynAny_Handler
+// ------------------------------
+#ifndef DYNANY_HANDLER_EXPORT_H
+#define DYNANY_HANDLER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (DYNANY_HANDLER_HAS_DLL)
+# define DYNANY_HANDLER_HAS_DLL 1
+#endif /* ! DYNANY_HANDLER_HAS_DLL */
+
+#if defined (DYNANY_HANDLER_HAS_DLL) && (DYNANY_HANDLER_HAS_DLL == 1)
+# if defined (DYNANY_HANDLER_BUILD_DLL)
+# define DynAny_Handler_Export ACE_Proper_Export_Flag
+# define DYNANY_HANDLER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DYNANY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DYNANY_HANDLER_BUILD_DLL */
+# define DynAny_Handler_Export ACE_Proper_Import_Flag
+# define DYNANY_HANDLER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DYNANY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DYNANY_HANDLER_BUILD_DLL */
+#else /* DYNANY_HANDLER_HAS_DLL == 1 */
+# define DynAny_Handler_Export
+# define DYNANY_HANDLER_SINGLETON_DECLARATION(T)
+# define DYNANY_HANDLER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DYNANY_HANDLER_HAS_DLL == 1 */
+
+// Set DYNANY_HANDLER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DYNANY_HANDLER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DYNANY_HANDLER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DYNANY_HANDLER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DYNANY_HANDLER_NTRACE */
+
+#if (DYNANY_HANDLER_NTRACE == 1)
+# define DYNANY_HANDLER_TRACE(X)
+#else /* (DYNANY_HANDLER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DYNANY_HANDLER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DYNANY_HANDLER_NTRACE == 1) */
+
+#endif /* DYNANY_HANDLER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
new file mode 100644
index 00000000000..2b01a870ba6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
@@ -0,0 +1,109 @@
+// $Id$
+
+#include "DynEnum_Handler.h"
+#include "DynAny_Handler.h"
+
+#include "Basic_Deployment_Data.hpp"
+#include "Common.h"
+
+#include "tao/AnyTypeCode/TypeCode.h"
+#include "tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.h"
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "tao/AnyTypeCode/Enum_TypeCode.h"
+#include "tao/IFR_Client/IFR_BasicC.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ DynamicAny::DynAny_ptr
+ DynEnum_Handler::extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr req_tc)
+ {
+ try
+ {
+ CORBA::TypeCode_ptr tc;
+
+ if (req_tc)
+ tc = req_tc;
+ else
+ tc = DynEnum_Handler::create_typecode (type);
+
+ // Make the actual DynEnum
+ DynamicAny::DynAny_var temp =
+ DYNANY_HANDLER->daf ()->create_dyn_any_from_type_code (tc);
+ DynamicAny::DynEnum_var retval = DynamicAny::DynEnum::_narrow (temp.in ());
+
+ retval->set_as_string (ACE_TEXT_ALWAYS_CHAR ((*value.begin_enum ())->c_str ()));
+
+ return retval._retn ();
+ }
+ catch (DynamicAny::DynAny::InvalidValue)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Invalid value provided in XML when trying to ")
+ ACE_TEXT ("initialize an instance of enumerated type %s\n"),
+ type.enum_ ().typeId ().c_str ()));
+ throw Config_Error (type.enum_ ().typeId (),
+ ACE_TEXT ("Invalid value provided in XML"));
+ }
+ catch (Config_Error &ex)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DynEnum_Handler caught Config_Error\n")));
+ if (type.enum_p ())
+ ex.add_name (type.enum_ ().typeId ());
+
+ throw ex;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DynEnum_Handler caught unknown exception\n")));
+ throw Config_Error (type.enum_ ().typeId (),
+ ACE_TEXT ("Unknown exception"));
+ }
+ }
+
+ void
+ DynEnum_Handler::extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn)
+ {
+ ACE_UNUSED_ARG (dyn);
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Extracting Enums not yet supported\n")));
+ }
+
+ CORBA::TypeCode_ptr
+ DynEnum_Handler::create_typecode (const DataType &type)
+ {
+ if (!type.enum_p ())
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Enum type descriptioin required")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Did not find expected enum type description, tk_kind may be wrong."));
+ }
+
+ // Construct TypeCode for the enum
+ CORBA::EnumMemberSeq members;
+ members.length (type.enum_ ().count_member ());
+ CORBA::ULong index (0);
+
+ for (EnumType::member_const_iterator i = type.enum_ ().begin_member ();
+ i != type.enum_ ().end_member ();
+ ++i)
+ {
+ members[index++] = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR ((*i)->c_str ()));
+ }
+
+ // @@ Leak this guy onto the heap to avoid a compile problem.
+ CORBA::TypeCode_ptr tc =
+ DYNANY_HANDLER->orb ()->create_enum_tc (ACE_TEXT_ALWAYS_CHAR (type.enum_ ().typeId ().c_str ()),
+ ACE_TEXT_ALWAYS_CHAR (type.enum_ ().name ().c_str ()),
+ members);
+
+ DYNANY_HANDLER->register_typecode ((type.enum_ ().typeId ()),
+ tc);
+
+ return tc;
+ }
+
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.h
new file mode 100644
index 00000000000..8eaa1f11897
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynEnum_Handler.h
@@ -0,0 +1,52 @@
+/**
+ * $Id$
+ *
+ * @file DynEnum_Handler.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_CONFIG_HANDLERS_DYNENUM_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DYNENUM_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "DynAny_Handler_Export.h"
+
+#include "tao/ORB.h"
+#include "tao/DynamicAny/DynamicAny.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Any;
+ class DataType;
+ class DataValue;
+
+ /**
+ * @class DynEnum_Handler
+ * @brief Translates enums specified in deployment plans into Dynamic Anys
+ *
+ */
+ class DynEnum_Handler
+ {
+ public:
+ static DynamicAny::DynAny_ptr extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr = 0);
+
+ static void extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn);
+
+ static CORBA::TypeCode_ptr create_typecode (const DataType &type);
+ };
+
+ }
+}
+
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_DYNENUM_HANDLER_H*/
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp
new file mode 100644
index 00000000000..6da77d30e75
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp
@@ -0,0 +1,163 @@
+// $Id$
+
+#include "DynSequence_Handler.h"
+#include "DynAny_Handler.h"
+
+#include "Basic_Deployment_Data.hpp"
+#include "Common.h"
+
+#include "ace/Null_Mutex.h"
+
+#include "tao/AnyTypeCode/TypeCode.h"
+#include "tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.h"
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "tao/AnyTypeCode/Sequence_TypeCode.h"
+#include "tao/IFR_Client/IFR_BasicC.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ DynamicAny::DynAny_ptr
+ DynSequence_Handler::extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr req_tc)
+ {
+ CORBA::TypeCode_ptr tc;
+ if (req_tc)
+ tc = req_tc;
+ else
+ tc = DynSequence_Handler::create_typecode (type);
+
+ // Make the actual DynSequence
+ DynamicAny::DynAny_var temp =
+ DYNANY_HANDLER->daf ()->create_dyn_any_from_type_code (tc);
+ DynamicAny::DynSequence_var retval = DynamicAny::DynSequence::_narrow (temp.in ());
+
+ DynamicAny::DynAnySeq dynseq;
+ CORBA::ULong pos = 0;
+
+ switch (type.sequence ().elementType ().kind ().integral ())
+ {
+ // ========== BASIC TYPES
+ case TCKind::tk_null_l:
+ case TCKind::tk_void_l:
+ case TCKind::tk_objref_l:
+ case TCKind::tk_fixed_l:
+ case TCKind::tk_component_l:
+ case TCKind::tk_home_l:
+
+ ACE_ERROR ((LM_WARNING, "I don't know how to handle null or void types\n"));
+ throw 1;
+
+ case TCKind::tk_short_l:
+ case TCKind::tk_long_l:
+ case TCKind::tk_ushort_l:
+ case TCKind::tk_ulong_l:
+ case TCKind::tk_float_l:
+ case TCKind::tk_double_l:
+ case TCKind::tk_boolean_l:
+ case TCKind::tk_octet_l:
+ case TCKind::tk_string_l:
+ case TCKind::tk_longlong_l:
+ case TCKind::tk_ulonglong_l:
+ case TCKind::tk_longdouble_l:
+ case TCKind::tk_wstring_l:
+ case TCKind::tk_enum_l:
+ case TCKind::tk_struct_l:
+ try
+ {
+ dynseq.length (value.count_element ());
+ retval->set_length (value.count_element ());
+
+ for (DataValue::element_const_iterator i = value.begin_element ();
+ i != value.end_element ();
+ ++i)
+ {
+ DynamicAny::DynAny_var dynany
+ (DYNANY_HANDLER->extract_into_dynany (type.sequence ().elementType (),
+ **i));
+ dynseq[pos++] = dynany->copy ();
+ }
+
+ retval->set_elements_as_dyn_any (dynseq);
+ return retval._retn ();
+ }
+ catch (DynamicAny::DynAny::InvalidValue)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Invalid value provided in XML when trying to ")
+ ACE_TEXT ("populate %ith element of a sequence\n"),
+ pos));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Invalid value whilst populating the sequence."));
+ }
+
+ case TCKind::tk_char_l:
+ case TCKind::tk_wchar_l:
+ // special case where value iterataor multiplicity should be one, and should
+ // represent a string, each character of which becomes a element of the sequence.
+
+ case TCKind::tk_sequence_l:
+ case TCKind::tk_array_l:
+ // Several special cases here.
+
+ case TCKind::tk_any_l:
+ case TCKind::tk_TypeCode_l:
+ case TCKind::tk_Principal_l:
+ case TCKind::tk_union_l:
+ case TCKind::tk_alias_l:
+ case TCKind::tk_except_l:
+ case TCKind::tk_value_l:
+ case TCKind::tk_value_box_l:
+ case TCKind::tk_native_l:
+ case TCKind::tk_abstract_interface_l:
+ case TCKind::tk_local_interface_l:
+ case TCKind::tk_event_l:
+ // Special case where element association in datavalue contains another datavalue.
+
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Type not supported\n")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Type not supported"));
+ }
+
+ return retval._retn ();
+ }
+
+ void
+ DynSequence_Handler::extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn)
+ {
+ ACE_UNUSED_ARG (dyn);
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Extracting Sequences not yet supported\n")));
+ }
+
+ CORBA::TypeCode_ptr
+ DynSequence_Handler::create_typecode (const DataType &type)
+ {
+ if (!type.sequence_p ())
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Sequence type descriptioin required")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Expected <sequence> element, incorrect tc_kind."));
+ }
+
+ CORBA::TypeCode_ptr etc =
+ DYNANY_HANDLER->create_typecode (type.sequence ().elementType ());
+
+ CORBA::ULong bound (0);
+ if (type.sequence ().bound_p ())
+ bound = type.sequence ().bound ();
+
+ // @@ Leak this guy onto the heap to avoid a compile problem.
+ CORBA::TypeCode_ptr tc =
+ DYNANY_HANDLER->orb ()->create_sequence_tc (bound,
+ etc);
+
+ // Sequences don't have names.
+ // DYNANY_HANDLER->register_typecode (type.sequence_ ().typeId (),
+ // tc);
+
+ return tc;
+ }
+
+ }
+}
+
+
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.h
new file mode 100644
index 00000000000..7d6a5b6ba6c
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynSequence_Handler.h
@@ -0,0 +1,52 @@
+/**
+ * $Id$
+ *
+ * @file DynSequence_Handler.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_CONFIG_HANDLERS_DYNSEQUENCE_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DYNSEQUENCE_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "DynAny_Handler_Export.h"
+
+#include "tao/ORB.h"
+#include "tao/DynamicAny/DynamicAny.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Any;
+ class DataType;
+ class DataValue;
+
+ /**
+ * @class DynSequence_Handler
+ * @brief Translates sequences specified in deployment plans into Dynamic Anys
+ *
+ */
+ class DynSequence_Handler
+ {
+ public:
+ static DynamicAny::DynAny_ptr extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr = 0);
+
+ static void extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn);
+
+ static CORBA::TypeCode_ptr create_typecode (const DataType &type);
+ };
+
+ }
+}
+
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_DYNSEQUENCE_HANDLER_H*/
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
new file mode 100644
index 00000000000..b075d418e7b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#include "DynStruct_Handler.h"
+#include "DynAny_Handler.h"
+
+#include "Basic_Deployment_Data.hpp"
+#include "Common.h"
+
+#include "ace/Null_Mutex.h"
+
+//#include "tao/ORB.h"
+#include "tao/IFR_Client/IFR_BasicC.h"
+//#include "tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.h"
+
+#include "tao/AnyTypeCode/Struct_TypeCode.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void create_type_map (const DataType &type,
+ std::map <std::basic_string<ACE_TCHAR>, DataType const *> &dt_map)
+ {
+ for (StructType::member_const_iterator i = type.struct_ ().begin_member ();
+ i != type.struct_ ().end_member (); ++i)
+ {
+ dt_map[(*i)->name ()] = &((*i)->type ());
+ }
+ }
+
+ DynamicAny::DynAny_ptr
+ DynStruct_Handler::extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr req_tc)
+ {
+ try
+ {
+ CORBA::TypeCode_ptr tc;
+
+ if (req_tc)
+ tc = req_tc;
+ else
+ tc = DynStruct_Handler::create_typecode (type);
+
+ std::map <std::basic_string<ACE_TCHAR>, DataType const*> dt_map;
+ create_type_map (type, dt_map);
+
+ // Make the actual DynStruct
+ DynamicAny::DynAny_var temp =
+ DYNANY_HANDLER->daf ()->create_dyn_any_from_type_code (tc);
+ DynamicAny::DynStruct_var retval = DynamicAny::DynStruct::_narrow (temp.in ());
+
+ CORBA::ULong pos (0);
+ DynamicAny::NameDynAnyPairSeq values;
+ values.length (value.count_member ());
+
+ for (DataValue::member_const_iterator i = value.begin_member ();
+ i != value.end_member (); ++i)
+ {
+ values[pos].id = ACE_TEXT_ALWAYS_CHAR ((*i)->name ().c_str ());
+ values[pos].value = DYNANY_HANDLER->extract_into_dynany (*dt_map[(*i)->name ()],
+ (*i)->value ());
+ pos++;
+ }
+
+ retval->set_members_as_dyn_any (values);
+
+ return retval._retn ();
+ }
+ catch (Config_Error &ex)
+ {
+ if (type.struct_p ())
+ ex.add_name (type.struct_ ().typeId ());
+ throw ex;
+ }
+ catch (...)
+ {
+ throw Config_Error (type.struct_ ().typeId (),
+ ACE_TEXT ("Unknown exception"));
+ }
+ }
+
+
+ void
+ DynStruct_Handler::extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn)
+ {
+ ACE_UNUSED_ARG (dyn);
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Extracting Structs not yet supported\n")));
+ }
+
+ CORBA::TypeCode_ptr
+ DynStruct_Handler::create_typecode (const DataType &type)
+ {
+ if (!type.struct_p ())
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Struct type descriptioin required")));
+ throw Config_Error (ACE_TEXT (""), ACE_TEXT ("Expected struct type information, tc_kind may be incorrect\n"));
+ }
+
+ std::basic_string<ACE_TCHAR> rid (type.struct_ ().typeId ());
+ std::basic_string<ACE_TCHAR> name (type.struct_ ().name ());
+
+ CORBA::StructMemberSeq members;
+ members.length (type.struct_ ().count_member ());
+ CORBA::ULong pos (0);
+
+ for (StructType::member_const_iterator i = type.struct_ ().begin_member ();
+ i != type.struct_ ().end_member (); ++i)
+ {
+ members[pos].name = ACE_TEXT_ALWAYS_CHAR ((*i)->name ().c_str ());
+ members[pos].type = DYNANY_HANDLER->create_typecode ((*i)->type ());
+ ++pos;
+ }
+
+ // @@ Leak this guy onto the heap to avoid a compile problem.
+ CORBA::TypeCode_ptr tc =
+ DYNANY_HANDLER->orb ()->create_struct_tc (ACE_TEXT_ALWAYS_CHAR (rid.c_str ()),
+ ACE_TEXT_ALWAYS_CHAR (name.c_str ()),
+ members);
+
+ DYNANY_HANDLER->register_typecode (type.struct_ ().typeId (),
+ tc);
+
+ return tc;
+ }
+ }
+}
+
+
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.h
new file mode 100644
index 00000000000..554912378c6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/DynAny_Handler/DynStruct_Handler.h
@@ -0,0 +1,52 @@
+/**
+ * $Id$
+ *
+ * @file DynStruct_Handler.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_CONFIG_HANDLERS_DYNSTRUCT_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_DYNSTRUCT_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "DynAny_Handler_Export.h"
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "tao/ORB.h"
+#include "tao/DynamicAny/DynamicAny.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Any;
+ class DataType;
+ class DataValue;
+
+ /**
+ * @class DynStruct_Handler
+ * @brief Translates structs specified in deployment plans into Dynamic Anys
+ *
+ */
+ class DynStruct_Handler
+ {
+ public:
+ static DynamicAny::DynAny_ptr extract_into_dynany (const DataType &type,
+ const DataValue &value,
+ CORBA::TypeCode_ptr = 0);
+
+ static void extract_out_of_dynany (const DynamicAny::DynAny_ptr dyn);
+
+ static CORBA::TypeCode_ptr create_typecode (const DataType &type);
+ };
+
+ }
+}
+
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_DYNSTRUCT_HANDLER_H*/
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.cpp
new file mode 100644
index 00000000000..eece0a3f09a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.cpp
@@ -0,0 +1,61 @@
+// $Id$
+
+#include "ERE_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ ERE_Handler::external_ref_endpoints (
+ const PlanConnectionDescription &src,
+ Deployment::ExternalReferenceEndpoints &dest)
+ {
+ DANCE_TRACE("ERE_Handler::external_ref_endpoints");
+ PlanConnectionDescription::externalReference_const_iterator erep_e =
+ src.end_externalReference ();
+
+ CORBA::ULong pos = 0;
+ dest.length (src.count_externalReference ());
+ for (PlanConnectionDescription::externalReference_const_iterator erep_b =
+ src.begin_externalReference ();
+ erep_b != erep_e;
+ ++erep_b)
+ {
+ ERE_Handler::handle_external_ref_endpoint (*(*erep_b),
+ dest[pos++]);
+ }
+ }
+
+ void
+ ERE_Handler::handle_external_ref_endpoint (
+ const ExternalReferenceEndpoint &src,
+ Deployment::ExternalReferenceEndpoint &dest)
+ {
+ DANCE_TRACE("ERE_Handler::external_ref_endpoint");
+ dest.location = ACE_TEXT_ALWAYS_CHAR ( src.location ().c_str ());
+ dest.provider = src.provider ();
+ if (src.portName_p ())
+ dest.portName = ACE_TEXT_ALWAYS_CHAR ( src.portName ().c_str ());
+ dest.supportedType.length (src.count_supportedType ());
+ std::for_each (src.begin_supportedType (),
+ src.end_supportedType (),
+ String_Seq_Functor (dest.supportedType));
+ }
+
+ ExternalReferenceEndpoint
+ ERE_Handler::external_ref_endpoint (
+ const Deployment::ExternalReferenceEndpoint& src)
+ {
+ DANCE_TRACE("ERE_Handler::external_ref_endpoint - reverse");
+ XMLSchema::string< ACE_TCHAR > loc (ACE_TEXT_CHAR_TO_TCHAR (src.location));
+ // XMLSchema::string< char > provider ((src.provider));
+ XMLSchema::string< ACE_TCHAR > pn (ACE_TEXT_CHAR_TO_TCHAR (src.portName));
+ // XMLSchema::string< char > st ((src.supportedType));
+ ExternalReferenceEndpoint erp (loc, src.provider);
+ return erp;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.h
new file mode 100644
index 00000000000..5e4d1e1054e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ERE_Handler.h
@@ -0,0 +1,70 @@
+//==============================================================
+/**
+ * @file ERE_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_ERE_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_ERE_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Common_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Utils/Functors.h"
+
+namespace Deployment
+{
+ class ExternalReferenceEndpoints;
+ struct ExternalReferenceEndpoint;
+}
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+ class PlanConnectionDescription;
+ class ExternalReferenceEndpoint;
+
+ /*
+ * @class ERE_Handler
+ *
+ * @brief Handler class for <ExternalReferenceEndpoint> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC ExternalReferenceEndpoint objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Common_Export ERE_Handler
+ {
+ public:
+ static void external_ref_endpoints (const PlanConnectionDescription &src,
+ ::Deployment::ExternalReferenceEndpoints &dest);
+
+ static ExternalReferenceEndpoint external_ref_endpoint (
+ const Deployment::ExternalReferenceEndpoint& src);
+
+ static void handle_external_ref_endpoint (const ExternalReferenceEndpoint &src,
+ Deployment::ExternalReferenceEndpoint &dest);
+ };
+
+ typedef Sequence_Handler < ExternalReferenceEndpoint,
+ ::Deployment::ExternalReferenceEndpoints,
+ ::Deployment::ExternalReferenceEndpoint,
+ ERE_Handler::handle_external_ref_endpoint > ERE_Functor;
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_ERE_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.cpp
new file mode 100644
index 00000000000..8cfb39ae871
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.cpp
@@ -0,0 +1,124 @@
+// $Id$
+
+#include "ESD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "cdp.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ ESD_Handler::es_deployment_descrs (
+ const DeploymentPlan &src,
+ Deployment::EventServiceDeploymentDescriptions& dest)
+ {
+ DANCE_TRACE("ESD_Handler::instance_deployment_descrs");
+ DeploymentPlan::es_const_iterator esd_e = src.end_instance ();
+
+ CORBA::ULong pos = 0;
+ dest.length (src.count_instance ());
+ for (DeploymentPlan::es_const_iterator esd_b =
+ src.begin_instance ();
+ esd_b != esd_e;
+ ++esd_b)
+ {
+ ESD_Handler::instance_deployment_descr ((*esd_b),
+ dest[pos], pos);
+ pos++;
+ }
+ }
+
+
+ void
+ ESD_Handler::es_deployment_descr (
+ const EventServiceDeploymentDescription& src,
+ Deployment::EventServiceDeploymentDescription& dest,
+ CORBA::ULong pos)
+ {
+ DANCE_TRACE("IDD_Handler::es_deployment_descr");
+ try
+ {
+ dest.name = src.name ().c_str ();
+ dest.node = src.node ().c_str ();
+ dest.svc_cfg_file = src.svc_cfg_file ().c_str ());
+
+ switch (desc.type ().integral ())
+ {
+ case EventServiceType::EC_l:
+ dest.type = Deployment::EC;
+ break;
+
+ case EventServiceType::RTEC_l:
+ dest.type = Deployment::RTEC;
+ break;
+
+ case EventServiceType::NOTIFY_l:
+ dest.type = Deployment::NOTIFY;
+ break;
+
+ case EventServiceType::RTNOTIFY_l:
+ dest.type = Deployment::RTNOTIFY;
+ break;
+
+ default:
+ throw Config_Error (desc.requirementName (),
+ "Unknown EventServiceType.");
+ break;
+ }
+ }
+ catch (Config_Error &ex)
+ {
+ ex.name_ = src.name () + ":" + ex.name_;
+ throw ex;
+ }
+ // Done!
+ }
+
+ EventServiceDeploymentDescription
+ ESD_Handler::es_deployment_descr (
+ const Deployment::EventServiceDeploymentDescription& src)
+ {
+ DANCE_TRACE("ESD_Handler::es_deployment_descr - reverse");
+ //Get all the string
+ XMLSchema::string < ACE_TCHAR > name ((src.name));
+ XMLSchema::string < ACE_TCHAR > node ((src.node));
+ XMLSchema::string < ACE_TCHAR > svc_cfg_file ((src.svc_cfg_file));
+
+ // Instantiate the IDD
+ EventServiceDeploymentDescription esd (
+ name,
+ node,
+ EventServiceType::RTEC_l,
+ svc_cfg_file);
+
+ switch (src.EventServiceType)
+ {
+ case Deployment::EC:
+ esd.EventServiceType (EventServiceType::EC);
+ break;
+
+ case Deployment::RTEC:
+ esd.EventServiceType (EventServiceType::RTEC);
+ break;
+
+ case Deployment::NOTIFY:
+ esd.EventServiceType (EventServiceType::NOTIFY);
+ break;
+
+ case Deployment::RTNOTIFY:
+ esd.EventServiceType (EventServiceType::RTNOTIFY);
+ break;
+
+ default:
+ throw Config_Error (src.resourceName.in (),
+ "Unknown EventServiceType.");
+ break;
+ }
+
+ return esd;
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.h
new file mode 100644
index 00000000000..b20828a9713
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ESD_Handler.h
@@ -0,0 +1,69 @@
+//==============================================================
+/**
+ * @file ESD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Gan Deng <dengg@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_IDD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_IDD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Common.h"
+#include "tao/Basic_Types.h"
+#include "Config_Handlers_Export.h"
+#include "IDREF_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct EventServiceDeploymentDescription;
+ class EventServiceDeploymentDescriptions;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class DeploymentPlan;
+ class EventServiceDeploymentDescription;
+
+ /*
+ * @class ESD_Handler
+ *
+ * @brief Handler class for <EventServiceDeploymentDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC EventServiceDeploymentDescription objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Export ESD_Handler
+ {
+ public:
+ static void es_deployment_descrs (
+ const DeploymentPlan &src,
+ ::Deployment::EventServiceDeploymentDescriptions& dest);
+
+ static EventServiceDeploymentDescription es_deployment_descr (const Deployment::EventServiceDeploymentDescription &src);
+
+ static IDREF_Base<CORBA::ULong> IDREF;
+
+ private:
+ static void es_deployment_descr (
+ const EventServiceDeploymentDescription &src,
+ ::Deployment::EventServiceDeploymentDescription &dest,
+ CORBA::ULong pos);
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_IDD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.cpp
new file mode 100644
index 00000000000..905b202b081
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.cpp
@@ -0,0 +1,165 @@
+// $Id$
+
+#include "ace/UUID.h"
+#include "IDD_Handler.h"
+#include "IRDD_Handler.h"
+#include "MDD_Handler.h"
+#include "Property_Handler.h"
+#include "Any_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "cdp.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ IDREF_Base<CORBA::ULong> IDD_Handler::IDREF;
+
+ void
+ IDD_Handler::instance_deployment_descrs (const deploymentPlan &src,
+ Deployment::InstanceDeploymentDescriptions& dest)
+ {
+ DANCE_TRACE("IDD_Handler::instance_deployment_descrs");
+ deploymentPlan::instance_const_iterator idd_e =
+ src.end_instance ();
+
+ CORBA::ULong pos = 0;
+ dest.length (src.count_instance ());
+ for (deploymentPlan::instance_const_iterator idd_b =
+ src.begin_instance ();
+ idd_b != idd_e;
+ ++idd_b)
+ {
+ IDD_Handler::instance_deployment_descr (*(*idd_b),
+ dest[pos], pos);
+ pos++;
+ }
+ }
+
+ void
+ IDD_Handler::instance_deployment_descr (
+ const InstanceDeploymentDescription& src,
+ Deployment::InstanceDeploymentDescription& dest,
+ CORBA::ULong pos)
+ {
+ DANCE_TRACE("IDD_Handler::instance_deployment_descr");
+ try
+ {
+ dest.name = ACE_TEXT_ALWAYS_CHAR ( src.name ().c_str ());
+ dest.node = ACE_TEXT_ALWAYS_CHAR ( src.node ().c_str ());
+
+ if (src.id_p ())
+ {
+ ACE_TString cstr (src.id ().c_str ());
+ IDD_Handler::IDREF.bind_ref (cstr, pos);
+ }
+ else
+ {
+ ACE_DEBUG((LM_ERROR,
+ "(%P|%t) Warning: IDD %s has no idref\n",
+ ACE_TEXT_ALWAYS_CHAR ( src.name ().c_str ())));
+ }
+
+ // We know there should be only one element
+ dest.source.length (1);
+ dest.source [0] =
+ ACE_TEXT_ALWAYS_CHAR (src.source ().c_str ());
+
+ CORBA::ULong tmp = 0;
+ MDD_Handler::IDREF.find_ref (ACE_TString (src.implementation ().idref ().id ().c_str ()), tmp);
+
+ dest.implementationRef = tmp;
+
+ dest.configProperty.length (src.count_configProperty ());
+ std::for_each (src.begin_configProperty (),
+ src.end_configProperty (),
+ Property_Functor (dest.configProperty));
+
+ dest.deployedResource.length (src.count_deployedResource ());
+ std::for_each (src.begin_deployedResource (),
+ src.end_deployedResource (),
+ IRDD_Functor (dest.deployedResource));
+
+ if (src.deployedSharedResource_p ())
+ {
+ dest.deployedSharedResource.length (1);
+ IRDD_Handler::handle_irdd (src.deployedSharedResource (),
+ dest.deployedSharedResource[0]);
+ }
+
+ }
+ catch (Config_Error &ex)
+ {
+ ex.name_ = src.name () + ACE_TEXT (":") + ex.name_;
+ throw ex;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unknown exception at IDD:%s"),
+ src.name ().c_str ()));
+ throw Config_Error (src.name (), ACE_TEXT ("Unknown exception"));
+ }
+
+ // Done!
+ }
+
+ InstanceDeploymentDescription
+ IDD_Handler::instance_deployment_descr (
+ const Deployment::InstanceDeploymentDescription& src)
+ {
+ DANCE_TRACE("IDD_Handler::instance_deployment_descr - reverse");
+ //Get all the string/IDREFs
+ XMLSchema::string < ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+ XMLSchema::string < ACE_TCHAR > node (ACE_TEXT_CHAR_TO_TCHAR (src.node));
+ XMLSchema::string < ACE_TCHAR > source (ACE_TEXT (""));
+ if (src.source.length () > 0)
+ {
+ XMLSchema::string < ACE_TCHAR > source_detail (ACE_TEXT_CHAR_TO_TCHAR (src.source[0]));
+ source = source_detail;
+ }
+ ACE_TString temp;
+ MDD_Handler::IDREF.find_ref(src.implementationRef, temp);
+ XMLSchema::IDREF< ACE_TCHAR > implementation ((temp.c_str()));
+
+ // Instantiate the IDD
+ IdRef xid;
+ xid.idref (implementation);
+ InstanceDeploymentDescription idd (name, node, source, xid);
+
+ //Get and store the configProperty(s)
+ size_t total = src.configProperty.length();
+ for(size_t j = 0; j < total; j++)
+ {
+ //idd.add_configProperty(Property_Handler::get_property (src.configProperty[j]));
+ }
+
+ // 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)
+ idd. deployedSharedResource(IRDD_Handler::instance_resource_deployment_descr(src.deployedSharedResource[0]));
+
+ // Generate a UUID to use for the IDREF.
+ ACE_Utils::UUID uuid;
+ ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (uuid);
+ ACE_TString idd_id (ACE_TEXT ("_"));
+ idd_id += ACE_TEXT_CHAR_TO_TCHAR (uuid.to_string ()->c_str ());
+
+ XMLSchema::ID< ACE_TCHAR > xml_id (idd_id.c_str ());
+
+ // Bind the ref and set it in the IDD
+ IDD_Handler::IDREF.bind_next_available (idd_id);
+
+ idd.id (xml_id);
+
+ return idd;
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.h
new file mode 100644
index 00000000000..313b7d9e6b2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/IDD_Handler.h
@@ -0,0 +1,70 @@
+//==============================================================
+/**
+ * @file IDD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_IDD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_IDD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Common.h"
+#include "tao/Basic_Types.h"
+#include "Config_Handlers_Export.h"
+#include "IDREF_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct InstanceDeploymentDescription;
+ class InstanceDeploymentDescriptions;
+ struct InstanceResourceDeploymentDescription;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class deploymentPlan;
+ class InstanceDeploymentDescription;
+ class InstanceResourceDeploymentDescription;
+
+ /*
+ * @class IDD_Handler
+ *
+ * @brief Handler class for <InstanceDeploymentDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC InstanceDeploymentDescriptionn objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Export IDD_Handler
+ {
+ public:
+ static void instance_deployment_descrs (const deploymentPlan &src,
+ ::Deployment::InstanceDeploymentDescriptions& dest);
+
+ static InstanceDeploymentDescription instance_deployment_descr (const Deployment::InstanceDeploymentDescription &src);
+
+ static IDREF_Base<CORBA::ULong> IDREF;
+
+ private:
+ static void instance_deployment_descr (const InstanceDeploymentDescription &src,
+ ::Deployment::InstanceDeploymentDescription &dest,
+ CORBA::ULong pos);
+
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_IDD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.cpp b/modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.cpp
new file mode 100644
index 00000000000..9f11efb7535
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.cpp
@@ -0,0 +1,111 @@
+// $Id$
+
+#ifndef IDREF_BASE_CPP
+#define IDREF_BASE_CPP
+
+#include "DAnCE/Logger/Log_Macros.h"
+#include "IDREF_Base.h"
+#include <iostream>
+
+
+ACE_RCSID (DAnCE,
+ IDREF_Base,
+ "$Id$")
+
+namespace CIAO
+ {
+ namespace Config_Handlers
+ {
+ template <typename T>
+ void
+ IDREF_Base<T>::bind_ref (ACE_TString& id, T value)
+ {
+ DANCE_TRACE("IDREF_Base<T>::bind_ref");
+
+ int retval =
+ idref_map_.bind (id, value);
+
+ pos_map_.bind (value,id);
+
+ if (retval < 0)
+ throw Config_Error (id.c_str (),
+ ACE_TEXT ("Failed to bind an IDRef. This likely indicates a name clash."));
+ }
+
+ template <typename T>
+ void
+ IDREF_Base<T>::bind_next_available (ACE_TString &id)
+ {
+ // Note: For this function to compile and work properly,
+ // T must have the postincrement operator defined.
+ DANCE_TRACE ("IDREF_Base<T>::bind_next_available");
+ // ACE_DEBUG ((LM_DEBUG, "**** Binding %s to %i\n",
+ // id.c_str (),
+ // this->next_));
+
+ int retval = idref_map_.bind (id, this->next_);
+
+ int pos_retval = pos_map_.bind (this->next_, id);
+
+ ++this->next_;
+
+ if (retval < 0 || pos_retval < 0)
+ throw Config_Error (id.c_str (),
+ ACE_TEXT ("Failed to bind an IDRef. This likely indicates a name clash"));
+
+ }
+
+ template <typename T>
+ void
+ IDREF_Base<T>::find_ref (const ACE_TString& id, T& val)
+ {
+ DANCE_TRACE("IDREF_Base<T>::find_ref(C_String, T)");
+
+ int retval =
+ idref_map_.find (id, val);
+
+ if (retval < 0)
+ throw Config_Error (id.c_str (),
+ ACE_TEXT ("Unable to look up an IDRef."));
+ }
+
+ template <typename T>
+ void
+ IDREF_Base<T>::find_ref (const T& value, ACE_TString& id)
+ {
+ DANCE_TRACE("IDREF_Base<T>::find_ref (T, CString)");
+
+ int retval =
+ pos_map_.find (value, id);
+
+ // ACE_ERROR ((LM_ERROR, "**** Looking up value %i\n",
+ // value));
+
+ if (retval < 0)
+ throw Config_Error (ACE_TEXT ("No location information for reverse IDREF lookup"),
+ id.c_str ());
+ }
+
+ template <typename T>
+ bool
+ IDREF_Base<T>::unbind_refs (void)
+ {
+ DANCE_TRACE("IDREF_Base<T>::unbind_refs");
+
+ int retval =
+ idref_map_.unbind_all ();
+
+ pos_map_.unbind_all ();
+
+ this->next_ = 0;
+
+ if (retval < 0)
+ return false;
+
+ return true;
+ }
+ }
+
+ }
+
+#endif /* IDREF_BASE_CPP */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.h b/modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.h
new file mode 100644
index 00000000000..3707f66142d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/IDREF_Base.h
@@ -0,0 +1,89 @@
+/**
+* $Id$
+* @file IDREF_Base.h
+* @author Will Otte <wotte@dre.vanderbilt.edu>
+*
+* Defines the IDREF_Base class, which is an abstract class that serves
+* as a base for any config handler that must map IDREFS.
+*/
+
+#ifndef CIAO_CONFIG_HANDLERS_IDREF_BASE_H
+#define CIAO_CONFIG_HANDLERS_IDREF_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "Common.h"
+#include "Config_Handlers_Export.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+namespace Config_Handlers
+{
+
+/**
+* @class IDREF_Handler
+* @brief Base class for any handler that must process idrefs.
+*
+*/
+template <typename T>
+class IDREF_Base
+{
+public:
+IDREF_Base ()
+{
+}
+
+IDREF_Base (T start_point)
+: next_ (start_point)
+{
+}
+
+/// Bind an IDREF to an index
+ void bind_ref (ACE_TString& id, T value);
+
+void bind_next_available (ACE_TString &id);
+
+/// Get the index associated with an IDREF
+ void find_ref (const ACE_TString& id, T& value);
+
+/// get the IDREF associated with an index
+ void find_ref (const T &value, ACE_TString& id);
+
+/// Unbind all IDREFS
+bool
+unbind_refs (void);
+
+typedef ACE_Hash_Map_Manager<ACE_TString,
+T,
+ACE_Null_Mutex> IDREF_MAP;
+
+
+typedef ACE_Hash_Map_Manager<T,
+ACE_TString,
+ACE_Null_Mutex> POS_MAP;
+protected:
+/// The map used to store and look up the indexes of elements
+/// referenced by their IDREF.
+IDREF_MAP idref_map_;
+/// The map used to store and look up the IDREFS of elements
+/// referenced by their index.
+POS_MAP pos_map_;
+
+T next_;
+};
+
+}
+
+}
+
+#include "IDREF_Base.cpp"
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_IDREF_BASE_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ID_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/ID_Handler.cpp
new file mode 100644
index 00000000000..f4e361e0d5d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ID_Handler.cpp
@@ -0,0 +1,45 @@
+// $Id$
+
+#include "ID_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ ID_Handler::ID_Handler (void)
+ {
+ }
+
+ ID_Handler::~ID_Handler (void)
+ {
+ }
+
+
+ void
+ ID_Handler::get_ImplementationDependency (const ImplementationDependency& desc,
+ Deployment::ImplementationDependency& toconfig)
+ {
+
+ DANCE_TRACE("ID_Handler::get_ImplementationDependency");
+
+ toconfig.requiredType=
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.requiredType ().c_str ()));
+ }
+
+ ImplementationDependency
+ ID_Handler::impl_dependency (
+ const ::Deployment::ImplementationDependency& src)
+ {
+ DANCE_TRACE("ID_Handler::get_ImplementationDependency - reverse");
+ XMLSchema::string< ACE_TCHAR > reqtype (ACE_TEXT_CHAR_TO_TCHAR (src.requiredType));
+
+ ImplementationDependency id (reqtype);
+
+ return id;
+ }
+
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ID_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/ID_Handler.h
new file mode 100644
index 00000000000..bea6ec2b1a6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ID_Handler.h
@@ -0,0 +1,78 @@
+
+//==============================================================
+/**
+* @file ID_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_ID_Handler_H
+#define CIAO_CONFIG_HANDLERS_ID_Handler_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+#include "ace/config-lite.h"
+
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+
+namespace Deployment
+{
+struct ImplementationDependency;
+class ImplementationDependencies;
+
+}
+
+
+namespace CIAO
+{
+
+namespace Config_Handlers
+{
+
+class ImplementationDependency;
+
+
+/*
+* @class ID_Handler
+*
+* @brief Handler class for <ImplementationDependency> types.
+*
+* This class defines handler methods to map values from
+* XSC ImplementationDependency objects, parsed from the descriptor files, to the
+* corresponding CORBA IDL Any type.
+*
+*/
+class Config_Handlers_Export ID_Handler
+{
+public:
+
+ID_Handler (void);
+virtual ~ID_Handler (void);
+
+static void get_ImplementationDependency (
+const ImplementationDependency& desc,
+Deployment::ImplementationDependency& toconfig);
+
+static ImplementationDependency impl_dependency (
+const ::Deployment::ImplementationDependency& src);
+};
+
+typedef Sequence_Handler < ImplementationDependency,
+::Deployment::ImplementationDependencies,
+::Deployment::ImplementationDependency,
+ID_Handler::get_ImplementationDependency > ID_Functor;
+
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_ID_Handler_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.cpp
new file mode 100644
index 00000000000..5f98bd0fbb0
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.cpp
@@ -0,0 +1,118 @@
+// $Id$
+
+#include "IRDD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "Property_Handler.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ IRDD_Handler::IRDD_Handler (void)
+ {
+ }
+
+ IRDD_Handler::~IRDD_Handler (void)
+ {
+ }
+
+
+ void
+ IRDD_Handler::handle_irdd (const InstanceResourceDeploymentDescription& desc,
+ Deployment::InstanceResourceDeploymentDescription& toconfig)
+ {
+ DANCE_TRACE("IRDD_Handler::instance_resource_deployment_descr");
+
+ 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.requirementName (),
+ ACE_TEXT ("Unknown ResourceUsageKind."));
+ break;
+ }
+
+ toconfig.requirementName = ACE_TEXT_ALWAYS_CHAR ( desc.requirementName ().c_str ());
+
+ toconfig.resourceName= ACE_TEXT_ALWAYS_CHAR ( desc.resourceName ().c_str ());
+
+ toconfig.property.length (desc.count_property ());
+ std::for_each (desc.begin_property (),
+ desc.end_property (),
+ Property_Functor (toconfig.property));
+ }
+
+ InstanceResourceDeploymentDescription
+ IRDD_Handler::instance_resource_deployment_descr (const Deployment::InstanceResourceDeploymentDescription& src)
+ {
+ DANCE_TRACE("IRDD_Handler::instance_resource_deployment_descr - reverse");
+
+ XMLSchema::string< ACE_TCHAR > reqname (ACE_TEXT_CHAR_TO_TCHAR (src.requirementName));
+ XMLSchema::string< ACE_TCHAR > resname (ACE_TEXT_CHAR_TO_TCHAR (src.resourceName));
+
+ InstanceResourceDeploymentDescription irdd (ResourceUsageKind::None,
+ reqname,
+ resname);
+
+ switch (src.resourceUsage)
+ {
+ case Deployment::None:
+ irdd.resourceUsage (ResourceUsageKind::None);
+ break;
+
+ case Deployment::InstanceUsesResource:
+ irdd.resourceUsage (ResourceUsageKind::InstanceUsesResource);
+ break;
+
+ case Deployment::ResourceUsesInstance:
+ irdd.resourceUsage (ResourceUsageKind::ResourceUsesInstance);
+ break;
+
+ case Deployment::PortUsesResource:
+ irdd.resourceUsage (ResourceUsageKind::PortUsesResource);
+ break;
+
+ case Deployment::ResourceUsesPort:
+ irdd.resourceUsage (ResourceUsageKind::ResourceUsesPort);
+ break;
+
+ default:
+ throw Config_Error (ACE_TEXT_CHAR_TO_TCHAR (src.resourceName.in ()),
+ ACE_TEXT ("Unknown ResourceUsageKind."));
+ break;
+ }
+
+ for (CORBA::ULong i = 0; i < src.property.length (); ++i)
+ {
+ //irdd.add_property (Property_Handler::get_property (src.property[i]));
+ }
+
+
+ return irdd;
+ }
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.h
new file mode 100644
index 00000000000..afebf61cc24
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/IRDD_Handler.h
@@ -0,0 +1,69 @@
+//==============================================================
+/**
+* @file IRDD_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_IRDD_Handler_H
+#define CIAO_CONFIG_HANDLERS_IRDD_Handler_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+#include "Common.h"
+#include "ace/config-lite.h"
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct InstanceResourceDeploymentDescription;
+ class InstanceResourceDeploymentDescriptions;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class InstanceResourceDeploymentDescription;
+
+ /*
+ * @class IRDD_Handler
+ *
+ * @brief Handler class for <InstanceResourceDeploymentDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC InstanceResourceDeploymentDescription objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL Any type.
+ *
+ */
+ class Config_Handlers_Export IRDD_Handler {
+ public:
+ IRDD_Handler (void);
+ virtual ~IRDD_Handler (void);
+
+ static void handle_irdd (const InstanceResourceDeploymentDescription& desc,
+ Deployment::InstanceResourceDeploymentDescription& toconfig)
+ /*throw (Config_Error)*/;
+
+ static InstanceResourceDeploymentDescription
+ instance_resource_deployment_descr (const Deployment::InstanceResourceDeploymentDescription& src)
+ /*throw (Config_Error)*/;
+ };
+
+ typedef Sequence_Handler < InstanceResourceDeploymentDescription,
+ ::Deployment::InstanceResourceDeploymentDescriptions,
+ ::Deployment::InstanceResourceDeploymentDescription,
+ IRDD_Handler::handle_irdd > IRDD_Functor;
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_IRDD_Handler_H */
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.cpp
new file mode 100644
index 00000000000..7bf2d6ea121
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.cpp
@@ -0,0 +1,174 @@
+// $Id$
+
+#include "MDD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "ADD_Handler.h"
+#include "Property_Handler.h"
+#include "Req_Handler.h"
+#include "cdp.hpp"
+#include "ace/UUID.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ IDREF_Base<CORBA::ULong> MDD_Handler::IDREF;
+
+ void
+ MDD_Handler::mono_deployment_descriptions (const deploymentPlan& src,
+ Deployment::MonolithicDeploymentDescriptions& dest)
+ {
+ DANCE_TRACE("MDD_Handler::mono_deployment_descriptions");
+
+ deploymentPlan::implementation_const_iterator imp_e =
+ src.end_implementation ();
+ CORBA::ULong pos = 0;
+ dest.length (src.count_implementation ());
+ for (deploymentPlan::implementation_const_iterator imp_b =
+ src.begin_implementation ();
+ imp_b != imp_e;
+ ++imp_b)
+ {
+ MDD_Handler::mono_deployment_description (*(*imp_b),
+ dest[pos],
+ pos);
+ pos++;
+ }
+ }
+
+ void
+ MDD_Handler::mono_deployment_description (const MonolithicDeploymentDescription& desc,
+ Deployment::MonolithicDeploymentDescription& toconfig,
+ CORBA::ULong pos)
+ {
+ toconfig.name =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ()));
+
+ MonolithicDeploymentDescription::source_const_iterator me =
+ desc.end_source ();
+
+ CORBA::ULong len = 0;
+ toconfig.source.length (desc.count_source ());
+ for (MonolithicDeploymentDescription::source_const_iterator se =
+ desc.begin_source ();
+ se != me;
+ ++se)
+ {
+ toconfig.source[len++] =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR ((*se)->c_str ()));
+ }
+
+ MonolithicDeploymentDescription::artifact_const_iterator ae =
+ desc.end_artifact ();
+ len = 0;
+ toconfig.artifactRef.length (desc.count_artifact ());
+ for (MonolithicDeploymentDescription::artifact_const_iterator
+ ab = desc.begin_artifact ();
+ ae != ab;
+ ++ab)
+ {
+ CORBA::ULong tmp = 0;
+
+ ADD_Handler::IDREF.find_ref (ACE_TString ((*ab)->idref ().id ().c_str ()),
+ tmp);
+
+ toconfig.artifactRef[len++] = tmp;
+ }
+
+ MonolithicDeploymentDescription::execParameter_const_iterator epce =
+ desc.end_execParameter ();
+ len = 0;
+ toconfig.execParameter.length (desc.count_execParameter ());
+ for (MonolithicDeploymentDescription::execParameter_const_iterator epcb =
+ desc.begin_execParameter ();
+ epcb != epce;
+ ++epcb)
+ {
+ Property_Handler::handle_property (*(*epcb),
+ toconfig.execParameter[len++]);
+ }
+
+ toconfig.deployRequirement.length (desc.count_deployRequirement ());
+ std::for_each (desc.begin_deployRequirement (),
+ desc.end_deployRequirement (),
+ Requirement_Functor (toconfig.deployRequirement));
+
+ // Handle the idref
+ if (desc.id_p ())
+ {
+ ACE_TString cstr (desc.id ().c_str ());
+
+ MDD_Handler::IDREF.bind_ref (cstr, pos);
+ }
+ else
+ {
+ ACE_DEBUG((LM_ERROR,
+ "(%P|%t) Warning: MDD %s has no idref\n",
+ desc.name ().c_str ()));
+ }
+ }
+
+
+ MonolithicDeploymentDescription
+ MDD_Handler::mono_deployment_description(
+ const Deployment::MonolithicDeploymentDescription &src)
+ {
+ DANCE_TRACE("mono_deployment_description - reverse");
+
+ //Get the name and instantiate the mdd
+ XMLSchema::string < ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+ MonolithicDeploymentDescription mdd (name);
+
+ //Get the source(s) from the IDL and store them
+ size_t total = src.source.length();
+ for(size_t i = 0; i < total; i++)
+ {
+ XMLSchema::string< ACE_TCHAR > curr (ACE_TEXT_CHAR_TO_TCHAR(src.source[i]));
+ //mdd.add_source(curr);
+ }
+
+ //Get the artifactRef(s) from the IDL and store them
+ total = src.artifactRef.length();
+ for(size_t j = 0; j < total; j++)
+ {
+ ACE_TString tmp;
+ ADD_Handler::IDREF.find_ref(src.artifactRef[j], tmp);
+ IdRef idref;
+ idref.idref (tmp.c_str ());
+ //mdd.add_artifact (idref);
+ }
+
+ //Get the execParameter(s) from the IDL and store them
+ total = src.execParameter.length();
+ for(size_t k = 0; k < total; k++)
+ {
+ //mdd.add_execParameter (Property_Handler::get_property (src.execParameter[k]));
+ }
+
+ //Get the deployRequirement(s) from the IDL and store them
+ total = src.deployRequirement.length();
+ for(size_t l = 0; l < total; l++)
+ {
+ //mdd.add_deployRequirement(Req_Handler::get_requirement (src.deployRequirement[l]));
+ }
+
+ // Generate a UUID to use for the IDREF.
+ ACE_Utils::UUID uuid;
+ ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (uuid);
+ ACE_TString mdd_id (ACE_TEXT ("_"));
+ mdd_id += ACE_TEXT_CHAR_TO_TCHAR (uuid.to_string ()->c_str ());
+
+ XMLSchema::ID< ACE_TCHAR > xml_id (mdd_id.c_str ());
+
+ // Bind the ref and set it in the IDD
+ MDD_Handler::IDREF.bind_next_available (mdd_id);
+
+ mdd.id (xml_id);
+
+ return mdd;
+ }
+ }
+
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.h
new file mode 100644
index 00000000000..c36efe6885b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/MDD_Handler.h
@@ -0,0 +1,68 @@
+//==============================================================
+/**
+ * @file MDD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_MDD_Handler_H
+#define CIAO_CONFIG_HANDLERS_MDD_Handler_H
+#include /**/ "ace/pre.h"
+#include "tao/Basic_Types.h"
+#include "Config_Handlers_Export.h"
+#include "IDREF_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace Deployment
+{
+ struct MonolithicDeploymentDescription;
+ class MonolithicDeploymentDescriptions;
+}
+
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+ class MonolithicDeploymentDescription;
+ class deploymentPlan;
+
+ /*
+ * @class MDD_Handler
+ *
+ * @brief Handler class for <MonolithicDeploymentDescription> types.
+ *
+ * This class defines handler methods to map values from XSC
+ * MonolithicDeploymentDescription objects, parsed from the
+ * descriptor files, to the corresponding CORBA IDL types.
+ *
+ */
+
+ class Config_Handlers_Export MDD_Handler
+ {
+ public:
+ static void mono_deployment_descriptions (const deploymentPlan &src,
+ Deployment::MonolithicDeploymentDescriptions &dest);
+
+ static MonolithicDeploymentDescription mono_deployment_description(const Deployment::MonolithicDeploymentDescription &src);
+
+ static IDREF_Base<CORBA::ULong> IDREF;
+
+ private:
+ static void mono_deployment_description (const MonolithicDeploymentDescription& desc,
+ Deployment::MonolithicDeploymentDescription& toconfig,
+ CORBA::ULong pos);
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_MDD_Handler_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.cpp
new file mode 100644
index 00000000000..d7136389160
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.cpp
@@ -0,0 +1,135 @@
+// $Id$
+
+#include "PCD_Handler.h"
+#include "Req_Handler.h"
+#include "CEPE_Handler.h"
+#include "PSPE_Handler.h"
+#include "ERE_Handler.h"
+#include "CRDD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ PCD_Handler::PCD_Handler (void)
+ {
+ }
+
+ PCD_Handler::~PCD_Handler (void)
+ {
+ }
+
+ ///This method takes a <Deployment::PlanConnectionDescription>
+ ///and maps the values from the passed in XSC
+ ///PlanConnectionDescription to its members.
+ void PCD_Handler::handle_PlanConnectionDescription (const PlanConnectionDescription& desc,
+ Deployment::PlanConnectionDescription& toconfig)
+ {
+ DANCE_TRACE("PCD_Handler::get_PlanConnectionDescription");
+
+ toconfig.name =( CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ())));
+
+ //Source is mapped to a string in the schema and a sequence
+ //in the IDL. We just assign the source string from the xml
+ //to the first position in the IDL type's sequence. We
+ //make sure that the source is present before lengthening
+ //the sequence.
+ if (desc.source_p ())
+ {
+ // Only one.....
+ toconfig.source.length (1);
+ toconfig.source[0] = ACE_TEXT_ALWAYS_CHAR ( desc.source ().c_str ());
+ }
+
+ toconfig.deployRequirement.length (desc.count_deployRequirement ());
+ std::for_each (desc.begin_deployRequirement (),
+ desc.end_deployRequirement (),
+ Requirement_Functor (toconfig.deployRequirement));
+
+
+ //Create the ComponentExternalPortEndpoint handler.
+ CEPE_Handler::external_port_endpoints (desc,
+ toconfig.externalEndpoint);
+
+ //Configure the PlanSubcomponentPortEndpoint's.
+ PSPE_Handler::sub_component_port_endpoints (desc,
+ toconfig.internalEndpoint);
+
+ //Configure the ExternalReferenceEndpoint's.
+ ERE_Handler::external_ref_endpoints (desc,
+ toconfig.externalReference);
+
+ //Configure the resource value.
+ CRDD_Handler crddhandler;
+ CORBA::ULong pos = 0;
+ toconfig.deployedResource.length (desc.count_deployedResource ());
+ for(PlanConnectionDescription::deployedResource_const_iterator res =
+ desc.begin_deployedResource();
+ res != desc.end_deployedResource();
+ res++)
+ {
+ crddhandler.get_ConnectionResourceDeploymentDescription (toconfig.deployedResource[pos++],
+ *(*res));
+ }
+
+ }
+
+ PlanConnectionDescription
+ PCD_Handler::get_PlanConnectionDescription (const Deployment::PlanConnectionDescription &src)
+ {
+ DANCE_TRACE("PCD_Handler::get_PlanConnectionDescription");
+
+ XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+
+ PlanConnectionDescription pcd(name);
+
+ //Get the source if it exists
+ if(src.source.length() != 0)
+ {
+ XMLSchema::string< ACE_TCHAR > source(ACE_TEXT_CHAR_TO_TCHAR (src.source[0]));
+ pcd.source(source);
+ }
+
+ //Get any externalEndpoint(s) and store them
+ size_t total = src.externalEndpoint.length();
+ for(size_t i = 0; i < total; i++)
+ {
+ //pcd.add_externalEndpoint(CEPE_Handler::external_port_endpoint(src.externalEndpoint[i]));
+ }
+
+ //Get any externalReference(s) and store them
+ total = src.externalReference.length();
+ for(size_t j = 0; j < total; j++)
+ {
+ //pcd.add_externalReference(ERE_Handler::external_ref_endpoint(src.externalReference[j]));
+ }
+
+ //Get any internalEndpoint(s) and store them
+ total = src.internalEndpoint.length();
+ for(size_t k = 0; k < total; k++)
+ {
+ //pcd.add_internalEndpoint(PSPE_Handler::sub_component_port_endpoint(src.internalEndpoint[k]));
+ }
+
+ //Get any deployedResource(s) and store them
+ total = src.deployedResource.length();
+ for(size_t l = 0; l < total; l++)
+ {
+ //pcd.add_deployedResource(CRDD_Handler::connection_resource_depl_desc(src.deployedResource[l]));
+ }
+
+ //Get any deployRequirement(s) and store them
+ total = src.deployRequirement.length();
+ for(size_t m = 0; m < total; m++)
+ {
+ //pcd.add_deployRequirement(Req_Handler::get_requirement(src.deployRequirement[m]));
+ }
+
+ return pcd;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.h
new file mode 100644
index 00000000000..3813fa2badc
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/PCD_Handler.h
@@ -0,0 +1,75 @@
+//==============================================================
+/**
+ * @file PCD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_PCD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_PCD_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+#include "Utils/Functors.h"
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct PlanConnectionDescription;
+ class PlanConnectionDescriptions;
+}
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+
+ class PlanConnectionDescription;
+
+ /*
+ * @class PCD_Handler
+ *
+ * @brief Handler class for <PlanConnectionDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC PlanConnectionDescription objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Export PCD_Handler{
+
+ public:
+
+ PCD_Handler (void);
+ virtual ~PCD_Handler (void);
+
+ ///This method takes a <Deployment::PlanConnectionDescription>
+ ///and maps the values from the passed in XSC
+ ///PlanConnectionDescription to its members.
+ static void handle_PlanConnectionDescription (const PlanConnectionDescription& desc,
+ ::Deployment::PlanConnectionDescription& toconfig);
+
+ //This method takes a <Deployment::PlanConnectionDescription>
+ //converts it into a <Config_Handler::PlanConnectionDescription>
+ //and returns the value
+ static PlanConnectionDescription
+ get_PlanConnectionDescription (const Deployment::PlanConnectionDescription &src);
+ };
+
+ typedef Sequence_Handler < PlanConnectionDescription,
+ ::Deployment::PlanConnectionDescriptions,
+ ::Deployment::PlanConnectionDescription,
+ PCD_Handler::handle_PlanConnectionDescription > PCD_Functor;
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_PCD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/PL_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/PL_Handler.cpp
new file mode 100644
index 00000000000..856a7d51983
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/PL_Handler.cpp
@@ -0,0 +1,52 @@
+// $Id$
+
+#include "PL_Handler.h"
+#include "IDD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ PL_Handler::get_PlanLocality (const PlanLocality &desc,
+ Deployment::PlanLocality &toconfig)
+ {
+ DANCE_TRACE ("PL_Handler::get_PlanLocality");
+
+ switch (desc.constraint ().integral ())
+ {
+ case PlanLocalityKind::SameProcess_l:
+ toconfig.constraint = Deployment::PlanSameProcess;
+ break;
+
+ case PlanLocalityKind::DifferentProcess_l:
+ toconfig.constraint = Deployment::PlanDifferentProcess;
+ break;
+
+ case PlanLocalityKind::NoConstraint_l:
+ toconfig.constraint = Deployment::PlanNoConstraint;
+ break;
+ }
+
+
+ size_t pos = 0;
+ toconfig.constrainedInstanceRef.length (desc.count_constrainedInstance ());
+
+ for (PlanLocality::constrainedInstance_const_iterator i = desc.begin_constrainedInstance ();
+ i != desc.end_constrainedInstance ();
+ ++i)
+ {
+ CORBA::ULong tmp = 0;
+ IDD_Handler::IDREF.find_ref ((*i)->idref ().id ().c_str (), tmp);
+
+ toconfig.constrainedInstanceRef[pos] = tmp;
+ ++pos;
+ }
+ }
+
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/PL_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/PL_Handler.h
new file mode 100644
index 00000000000..0511b81be48
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/PL_Handler.h
@@ -0,0 +1,53 @@
+// $Id$
+
+/**
+ * @file PL_Handler.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Handles PlanLocality elements
+ *
+ */
+
+#ifndef CIAO_CONFIG_HANDLERS_PL_HANDLER_
+#define CIAO_CONFIG_HANDLERS_PL_HANDLER_
+
+#include "Config_Handlers_Export.h"
+#include "ace/config-lite.h"
+
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{// $Id$
+
+ struct PlanLocality;
+ class PlanLocalities;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class PlanLocality;
+
+ class Config_Handlers_Export PL_Handler
+ {
+ public:
+ static void get_PlanLocality (const PlanLocality &desc,
+ Deployment::PlanLocality &toconfig);
+
+ static PlanLocality plan_locality (const ::Deployment::PlanLocality &src);
+ };
+
+ typedef Sequence_Handler < PlanLocality,
+ ::Deployment::PlanLocalities,
+ ::Deployment::PlanLocality,
+ PL_Handler::get_PlanLocality > PL_Functor;
+
+ }
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.cpp
new file mode 100644
index 00000000000..486bf060381
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.cpp
@@ -0,0 +1,148 @@
+// $Id$
+
+#include "PSPE_Handler.h"
+#include "IDD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ PSPE_Handler::sub_component_port_endpoints (
+ const PlanConnectionDescription &src,
+ ::Deployment::PlanSubcomponentPortEndpoints &dest)
+ {
+ DANCE_TRACE("PSPE_Handler::sub_component_port_endpoints");
+
+ PlanConnectionDescription::internalEndpoint_const_iterator iei_e =
+ src.end_internalEndpoint ();
+ CORBA::ULong pos = 0;
+ dest.length (src.count_internalEndpoint ());
+
+ for (PlanConnectionDescription::internalEndpoint_const_iterator iei_b =
+ src.begin_internalEndpoint ();
+ iei_b != iei_e;
+ ++iei_b)
+ {
+ PSPE_Handler::sub_component_port_endpoint (*(*iei_b),
+ dest[pos++]);
+ }
+ }
+
+ void
+ PSPE_Handler::sub_component_port_endpoint (
+ const PlanSubcomponentPortEndpoint &src,
+ ::Deployment::PlanSubcomponentPortEndpoint &dest)
+ {
+ DANCE_TRACE("PSPE_Handler::sub_component_port_endpoint");
+ dest.portName =
+ ACE_TEXT_ALWAYS_CHAR (src.portName ().c_str ());
+
+ if (src.provider_p ())
+ {
+ dest.provider = src.provider () == ACE_TEXT ("true");
+ }
+ else
+ {
+ dest.provider = false;
+ }
+
+ CORBA::ULong tmp = 0;
+
+ IDD_Handler::IDREF.find_ref (ACE_TString (src.instance ().idref ().id ().c_str ()),
+ tmp);
+
+ dest.instanceRef = tmp;
+
+ switch (src.kind ().integral ())
+ {
+ case CCMComponentPortKind::Facet_l:
+ dest.kind = Deployment::Facet;
+ break;
+
+ case CCMComponentPortKind::SimplexReceptacle_l:
+ dest.kind = Deployment::SimplexReceptacle;
+ break;
+
+ case CCMComponentPortKind::MultiplexReceptacle_l:
+ dest.kind = Deployment::MultiplexReceptacle;
+ break;
+
+ case CCMComponentPortKind::EventEmitter_l:
+ dest.kind = Deployment::EventEmitter;
+ break;
+
+ case CCMComponentPortKind::EventPublisher_l:
+ dest.kind = Deployment::EventPublisher;
+ break;
+
+ case CCMComponentPortKind::EventConsumer_l:
+ dest.kind = Deployment::EventConsumer;
+ break;
+
+ default:
+ ACE_DEBUG ((LM_DEBUG, "Invalid port kind in connection\n"));
+
+ }
+ }
+
+ PlanSubcomponentPortEndpoint
+ PSPE_Handler::sub_component_port_endpoint (
+ const Deployment::PlanSubcomponentPortEndpoint &src)
+ { // @@MAJO
+ DANCE_TRACE("PSPE_Handler::sub_component_port_endpoint - reverse");
+ XMLSchema::string< ACE_TCHAR > pname (ACE_TEXT_CHAR_TO_TCHAR (src.portName));
+ XMLSchema::string< ACE_TCHAR > tval (ACE_TEXT ("true"));
+ XMLSchema::string< ACE_TCHAR > prov (ACE_TEXT (""));
+ ACE_TString id;
+ IDD_Handler::IDREF.find_ref(src.instanceRef, id);
+ XMLSchema::IDREF < ACE_TCHAR > idref(id.c_str());
+
+ if (src.provider)
+ prov = tval;
+
+ IdRef idr;
+ idr.idref (idref);
+
+ PlanSubcomponentPortEndpoint pspe (pname,
+ CCMComponentPortKind::Facet,
+ idr);
+ pspe.provider (prov);
+
+ switch (src.kind)
+ {
+ case ::Deployment::Facet:
+ pspe.kind (CCMComponentPortKind::Facet);
+ break;
+
+ case ::Deployment::SimplexReceptacle:
+ pspe.kind (CCMComponentPortKind::SimplexReceptacle);
+ break;
+
+ case ::Deployment::MultiplexReceptacle:
+ pspe.kind (CCMComponentPortKind::MultiplexReceptacle);
+ break;
+
+ case ::Deployment::EventEmitter:
+ pspe.kind (CCMComponentPortKind::EventEmitter);
+ break;
+
+ case ::Deployment::EventPublisher:
+ pspe.kind (CCMComponentPortKind::EventPublisher);
+ break;
+
+ case ::Deployment::EventConsumer:
+ pspe.kind (CCMComponentPortKind::EventConsumer);
+ break;
+
+ default:
+ ACE_ERROR ((LM_ERROR, "Invalid port kind in PSPE\n"));
+ }
+
+
+ return pspe;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.h
new file mode 100644
index 00000000000..aeb92da9eb0
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/PSPE_Handler.h
@@ -0,0 +1,65 @@
+//==============================================================
+/**
+* @file PSPE_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_PSPE_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_PSPE_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+class PlanSubcomponentPortEndpoints;
+struct PlanSubcomponentPortEndpoint;
+}
+
+namespace CIAO
+{
+
+namespace Config_Handlers
+{
+class PlanConnectionDescription;
+class PlanSubcomponentPortEndpoint;
+
+/*
+* @class PSPE_Handler
+*
+* @brief Handler class for <PlanSubcomponentPortEndpoint> types.
+*
+* This class defines handler methods to map values from
+* XSC PlanSubcomponentPortEndpoint objects, parsed from
+* the descriptor files, to the corresponding CORBA IDL type.
+*
+*/
+class Config_Handlers_Export PSPE_Handler
+{
+public:
+static void sub_component_port_endpoints (
+const PlanConnectionDescription &src,
+::Deployment::PlanSubcomponentPortEndpoints &dest);
+
+static PlanSubcomponentPortEndpoint
+sub_component_port_endpoint (
+const Deployment::PlanSubcomponentPortEndpoint &src);
+
+private:
+static void sub_component_port_endpoint (
+const PlanSubcomponentPortEndpoint &src,
+::Deployment::PlanSubcomponentPortEndpoint &dest);
+};
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_PSPE_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.cpp
new file mode 100644
index 00000000000..cd58f3e08bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.cpp
@@ -0,0 +1,271 @@
+// $Id$
+
+#include "tao/AnyTypeCode/TypeCode.h"
+#include "Package_Handlers/CAD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "cid.hpp"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "Req_Handler.h"
+#include "CEPE_Handler.h"
+#include "ERE_Handler.h"
+#include "Utils/Exceptions.h"
+
+#include "Package_Handlers/SID_Handler.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+ struct Packaging_Handlers_Export SPE_Handler
+ {
+ static void handle_spe (const SubcomponentPortEndpoint &desc,
+ ::Deployment::SubcomponentPortEndpoint &toconfig)
+ {
+ DANCE_TRACE("SPE_Handler::get_spe");
+
+ toconfig.portName = ACE_TEXT_ALWAYS_CHAR ( desc.portName ().c_str ());
+
+ ACE_TString str (desc.instance ().idref ().id ().c_str ());
+ CORBA::ULong pos (0);
+
+ SID_Handler::IDREF.find_ref (str, pos);
+ toconfig.instanceRef = pos;
+ }
+
+ static SubcomponentPortEndpoint
+ get_spe (const ::Deployment::SubcomponentPortEndpoint &src)
+ {
+ DANCE_TRACE("SPE_Handler::get_spe - reverse");
+ ACE_TString str;
+ SID_Handler::IDREF.find_ref (src.instanceRef, str);
+
+ IdRef xid;
+ xid.idref (str.c_str ());
+
+ return SubcomponentPortEndpoint (ACE_TEXT_CHAR_TO_TCHAR (src.portName.in ()),
+ xid);
+ }
+ };
+
+ typedef Sequence_Handler < SubcomponentPortEndpoint,
+ ::Deployment::SubcomponentPortEndpoints,
+ ::Deployment::SubcomponentPortEndpoint,
+ SPE_Handler::handle_spe > SPE_Functor;
+
+ struct Packaging_Handlers_Export ACD_Handler
+ {
+ static void handle_acd (const AssemblyConnectionDescription &desc,
+ ::Deployment::AssemblyConnectionDescription &toconfig)
+ {
+ DANCE_TRACE("ACD_Handler::get_acd");
+
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR ( desc.name ().c_str ());
+
+ toconfig.deployRequirement.length (desc.count_deployRequirement ());
+ std::for_each (desc.begin_deployRequirement (),
+ desc.end_deployRequirement (),
+ Requirement_Functor (toconfig.deployRequirement));
+
+ toconfig.internalEndpoint.length (desc.count_internalEndpoint ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (SPE_Handler::handle_spe,
+ (*desc.begin_internalEndpoint ()),
+ toconfig.internalEndpoint);
+ std::for_each (desc.begin_internalEndpoint (),
+ desc.end_internalEndpoint (),
+ SPE_Functor (toconfig.internalEndpoint));
+
+ toconfig.externalEndpoint.length (desc.count_externalEndpoint ());
+ std::for_each (desc.begin_externalEndpoint (),
+ desc.end_externalEndpoint (),
+ CEPE_Functor (toconfig.externalEndpoint));
+
+ toconfig.externalReference.length (desc.count_externalReference ());
+ std::for_each (desc.begin_externalReference (),
+ desc.end_externalReference (),
+ ERE_Functor (toconfig.externalReference));
+
+ }
+
+ static AssemblyConnectionDescription
+ get_acd (const ::Deployment::AssemblyConnectionDescription &src)
+ {
+ DANCE_TRACE("ACD_Handler::get_acd - reverse");
+
+ AssemblyConnectionDescription retval (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()));
+#if 0
+ for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i)
+ retval.add_deployRequirement (Req_Handler::get_requirement (src.deployRequirement[i]));
+
+ for (CORBA::ULong i = 0; i < src.internalEndpoint.length (); ++i)
+ retval.add_internalEndpoint
+ (SPE_Handler::get_spe (src.internalEndpoint[i]));
+
+ for (CORBA::ULong i = 0; i < src.externalEndpoint.length (); ++i)
+ retval.add_externalEndpoint
+ (CEPE_Handler::external_port_endpoint (src.externalEndpoint[i]));
+
+ for (CORBA::ULong i = 0; i < src.externalReference.length (); ++i)
+ retval.add_externalReference
+ (ERE_Handler::external_ref_endpoint (src.externalReference[i]));
+#endif
+ return retval;
+ }
+ };
+
+ typedef Sequence_Handler < AssemblyConnectionDescription,
+ ::Deployment::AssemblyConnectionDescriptions,
+ ::Deployment::AssemblyConnectionDescription,
+ ACD_Handler::handle_acd > ACD_Functor;
+
+
+ struct Packaging_Handlers_Export SPR_Handler
+ {
+ static void handle_spr (const SubcomponentPropertyReference &desc,
+ ::Deployment::SubcomponentPropertyReference &toconfig)
+ {
+ DANCE_TRACE("SPR_Handler::get_spr");
+
+ toconfig.propertyName = ACE_TEXT_ALWAYS_CHAR ( desc.propertyName ().c_str ());
+
+ ACE_TString str (desc.instance ().idref ().id ().c_str ());
+ CORBA::ULong pos (0);
+
+ SID_Handler::IDREF.find_ref (str, pos);
+ toconfig.instanceRef = pos;
+
+ }
+
+ static SubcomponentPropertyReference
+ get_spr (const ::Deployment::SubcomponentPropertyReference &src)
+ {
+ DANCE_TRACE("SPR_HAndler::get_spr - reverse");
+ ACE_TString str;
+ SID_Handler::IDREF.find_ref (src.instanceRef, str);
+
+ IdRef xid;
+ xid.idref (str.c_str ());
+ return SubcomponentPropertyReference (ACE_TEXT_CHAR_TO_TCHAR (src.propertyName.in ()),
+ xid);
+ }
+
+ };
+
+ typedef Sequence_Handler < SubcomponentPropertyReference,
+ ::Deployment::SubcomponentPropertyReferences,
+ ::Deployment::SubcomponentPropertyReference,
+ SPR_Handler::handle_spr > SPR_Functor;
+
+ struct Packaging_Handlers_Export APM_Handler
+ {
+ static void handle_apm (const AssemblyPropertyMapping &desc,
+ ::Deployment::AssemblyPropertyMapping &toconfig)
+ {
+ DANCE_TRACE("APM_Handler::get_apm");
+
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR ( desc.name ().c_str ());
+ toconfig.externalName = ACE_TEXT_ALWAYS_CHAR ( desc.externalName ().c_str ());
+
+ toconfig.delegatesTo.length (desc.count_delegatesTo ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (SPR_Handler::handle_spr,
+ (*desc.begin_delegatesTo ()),
+ toconfig.delegatesTo);
+ std::for_each (desc.begin_delegatesTo (),
+ desc.end_delegatesTo (),
+ SPR_Functor (toconfig.delegatesTo));
+ }
+
+ static AssemblyPropertyMapping
+ get_apm (const ::Deployment::AssemblyPropertyMapping &src)
+ {
+ DANCE_TRACE("APM_Handler::get_apm - reverse");
+
+ AssemblyPropertyMapping retval (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()),
+ ACE_TEXT_CHAR_TO_TCHAR (src.externalName.in ()));
+#if 0
+ for (CORBA::ULong i = 0; i < src.delegatesTo.length (); ++i)
+ retval.add_delegatesTo (SPR_Handler::get_spr (src.delegatesTo[i]));
+#endif
+ return retval;
+ }
+ };
+
+ typedef Sequence_Handler < AssemblyPropertyMapping,
+ ::Deployment::AssemblyPropertyMappings,
+ ::Deployment::AssemblyPropertyMapping,
+ APM_Handler::handle_apm > APM_Functor;
+
+ void
+ CAD_Handler::component_assem_descr (const ComponentAssemblyDescription &desc,
+ ::Deployment::ComponentAssemblyDescription &toconfig)
+ {
+ DANCE_TRACE("CAD_Handler::component_assem_descr");
+
+ toconfig.instance.length (desc.count_instance ());
+ std::for_each (desc.begin_instance (),
+ desc.end_instance (),
+ SID_Functor (toconfig.instance));
+
+ /* @@ MAJO: Implement Locality */
+
+ toconfig.connection.length (desc.count_connection ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (ACD_Handler::handle_acd,
+ (*desc.begin_connection ()),
+ toconfig.connection);
+ std::for_each (desc.begin_connection (),
+ desc.end_connection (),
+ ACD_Functor (toconfig.connection));
+
+ toconfig.externalProperty.length (desc.count_externalProperty ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (APM_Handler::handle_apm,
+ (*desc.begin_externalProperty ()),
+ toconfig.externalProperty);
+ std::for_each (desc.begin_externalProperty (),
+ desc.end_externalProperty (),
+ APM_Functor (toconfig.externalProperty));
+ }
+
+ ComponentAssemblyDescription
+ CAD_Handler::component_assem_descr (const ::Deployment::ComponentAssemblyDescription &/*src*/)
+ {
+ DANCE_TRACE("CAD_Handler::component_assem_descr - reverse");
+
+ ComponentAssemblyDescription retval;
+#if 0
+ for (CORBA::ULong i = 0; i < src.instance.length (); ++i)
+ retval.add_instance
+ (SID_Handler::sub_comp_inst_descr (src.instance[i]));
+
+ for (CORBA::ULong i = 0; i < src.connection.length (); ++i)
+ retval.add_connection (ACD_Handler::get_acd (src.connection[i]));
+
+ for (CORBA::ULong i = 0; i < src.externalProperty.length (); ++i)
+ retval.add_externalProperty (APM_Handler::get_apm (src.externalProperty[i]));
+#endif
+ return retval;
+
+ }
+
+ ComponentAssemblyDescription *
+ CAD_Handler::resolve_cad (const char *)
+ {
+ /* xercesc::DOMDocument *dom =
+ this->xml_helper_->create_dom (uri);
+
+ if (!dom)
+ throw Parse_Error ("Unable to create DOM for CAD");
+
+ try {
+ return new ComponentAssemblyDescription
+ (componentAssemblyDescription (dom));
+ }
+ catch (...) {
+ throw Parse_Error ("Unable to create XSC structure for CAD");
+ */
+ return 0;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.h
new file mode 100644
index 00000000000..b42f13dcdc3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CAD_Handler.h
@@ -0,0 +1,59 @@
+/**
+ * @file CAD_Handler.h
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ */
+
+#ifndef CIAO_PACKAGING_CAD_HANDLER_H
+#define CIAO_PACKAGING_CAD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "XML_Typedefs.h"
+#include "DAnCE/Deployment/DeploymentC.h"
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct ComponentAssemblyDescription;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentAssemblyDescription;
+
+ namespace Packaging
+ {
+
+ /**
+ * @class CAD_Handler
+ *
+ * @brief Handler class for ComponentAssemblyDescription.
+ */
+ class Packaging_Handlers_Export CAD_Handler
+ {
+ public:
+ static void component_assem_descr (const ComponentAssemblyDescription &desc,
+ ::Deployment::ComponentAssemblyDescription &toconfig);
+
+ static ComponentAssemblyDescription
+ component_assem_descr (const ::Deployment::ComponentAssemblyDescription &src);
+
+ private:
+ static ComponentAssemblyDescription * resolve_cad (const char *uri);
+ };
+
+ }
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_PACKAGING_CAD_HANDLER_H */
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.cpp
new file mode 100644
index 00000000000..4be49ae2bcb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.cpp
@@ -0,0 +1,390 @@
+// $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 "DAnCE/Deployment/Deployment_DataC.h"
+#include "XML_Typedefs.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)
+ {
+ DANCE_TRACE ("Capability_Handler::get_capability");
+
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR ( 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)
+ {
+ DANCE_TRACE ("Capability_Handler::get_capability - reverse");
+
+ Capability retval (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()));
+#if 0
+ for (CORBA::ULong i = 0; i < src.resourceType.length (); ++i)
+ retval.add_resourceType (src.resourceType[i].in ());
+
+ for (CORBA::ULong i = 0; i < src.property.length (); ++i)
+ retval.add_property (SatisfierProperty_Handler::get_sat_property (src.property[i]));
+#endif
+ 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)
+ {
+ DANCE_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 (),
+ ACE_TEXT ("Unknown ResourceUsageKind."));
+ break;
+ }
+ }
+
+ if (desc.resourcePort_p ())
+ toconfig.resourcePort = ACE_TEXT_ALWAYS_CHAR ( desc.resourcePort ().c_str ());
+
+ if (desc.componentPort_p ())
+ toconfig.componentPort = ACE_TEXT_ALWAYS_CHAR ( desc.componentPort ().c_str ());
+
+ toconfig.resourceType = ACE_TEXT_ALWAYS_CHAR ( desc.resourceType ().c_str ());
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR ( 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)
+ {
+ DANCE_TRACE ("IR_Handler::get_ir - reverse");
+
+ ImplementationRequirement retval (ACE_TEXT_CHAR_TO_TCHAR (src.resourceType.in ()),
+ ACE_TEXT_CHAR_TO_TCHAR (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 (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()),
+ ACE_TEXT ("Unknown ResourceUsageKind."));
+ break;
+ }
+
+ retval.resourcePort (ACE_TEXT_CHAR_TO_TCHAR (src.resourcePort.in ()));
+
+ retval.componentPort (ACE_TEXT_CHAR_TO_TCHAR (src.componentPort.in ()));
+#if 0
+ for (CORBA::ULong i = 0; i < src.property.length (); ++i)
+ retval.add_property (Property_Handler::get_property (src.property[i]));
+#endif
+ 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)
+ {
+ DANCE_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*/)
+ {
+ DANCE_TRACE ("MID_Handler::get_mid - reverse");
+
+ MonolithicImplementationDescription retval;
+#if 0
+ 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]));
+#endif
+ 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)
+ {
+ DANCE_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 = ACE_TEXT_ALWAYS_CHAR ( cid->label ().c_str ());
+
+ if (cid->UUID_p ())
+ toconfig.UUID = ACE_TEXT_ALWAYS_CHAR ( 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 (ACE_TEXT ("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 = ACE_TEXT_ALWAYS_CHAR ( (*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)
+ {
+ DANCE_TRACE ("CID_Handler::component_impl_descr - reverse");
+
+ ComponentImplementationDescription retval;
+
+ retval.label (ACE_TEXT_CHAR_TO_TCHAR (src.label.in ()));
+ retval.UUID (ACE_TEXT_CHAR_TO_TCHAR (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"));
+#if 0
+ 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]));
+ }
+#endif
+ return retval;
+ }
+
+ ComponentImplementationDescription *
+ CID_Handler::resolve_cid (const ACE_TCHAR *uri)
+ {
+ DANCE_TRACE ("CID_Handler::resolve_cid");
+
+ xercesc::DOMDocument *dom = XML_Helper::XML_HELPER.create_dom (uri);
+
+ if (!dom)
+ throw Parse_Error (ACE_TEXT ("Unable to create DOM for CID"));
+
+ try {
+ return new ComponentImplementationDescription
+ (reader::componentImplementationDescription (dom));
+ }
+ catch (...) {
+ throw Parse_Error (ACE_TEXT ("Unable to create XSC structure for CID"));
+ }
+ }
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.h
new file mode 100644
index 00000000000..d00304d8cfe
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CID_Handler.h
@@ -0,0 +1,67 @@
+/**
+ * @file CID_Handler.h
+ *
+ * $Id$
+ *
+ * @author William Otte <wotte@dre.vanderbilt.edu
+ */
+
+#ifndef CIAO_PACKAGING_CID_HANDLER_H
+#define CIAO_PACKAGING_CID_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "IDREF_Base.h"
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+#include "tao/Basic_Types.h"
+
+namespace Deployment
+{
+ struct ComponentImplementationDescription;
+}
+
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentImplementationDescription;
+
+ namespace Packaging
+ {
+
+ /**
+ * @class CID_Handler
+ *
+ * @brief Handler class for <CCMComponentImplementationDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Packaging_Handlers_Export CID_Handler
+ {
+
+ public:
+ /// Maps the values from the XSC object
+ /// <ComponentImplementationDescription> to the CORBA IDL type
+ /// <Deployment::ComponentImplementationDescription>.
+ static void component_impl_descr (const ComponentImplementationDescription &desc,
+ ::Deployment::ComponentImplementationDescription &toconfig);
+
+ static IDREF_Base<CORBA::ULong> IDREF;
+
+ static ComponentImplementationDescription
+ component_impl_descr (const Deployment::ComponentImplementationDescription& src);
+
+ private:
+
+ static ComponentImplementationDescription * resolve_cid (const ACE_TCHAR *uri);
+ };
+ }
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_PACKAGING_CID_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.cpp
new file mode 100644
index 00000000000..ba2c14309b2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.cpp
@@ -0,0 +1,160 @@
+// $Id$
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "Package_Handlers/CPD_Handler.h"
+#include "Package_Handlers/CID_Handler.h"
+#include "Package_Handlers/Comp_Intf_Descr_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "Deployment.hpp"
+#include "Utils/Exceptions.h"
+#include "Property_Handler.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+ struct Packaging_Handlers_Export PCI_Handler
+ {
+ static void handle_pci (const PackagedComponentImplementation &desc,
+ ::Deployment::PackagedComponentImplementation &toconfig)
+ {
+ DANCE_TRACE ("PCI_Handler::get_pci");
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ());
+
+ CID_Handler::component_impl_descr (desc.referencedImplementation (),
+ toconfig.referencedImplementation);
+ }
+
+ static PackagedComponentImplementation
+ get_pci (const ::Deployment::PackagedComponentImplementation &src)
+ {
+ DANCE_TRACE ("PCI_Handler::get_pci - reverse");
+ return PackagedComponentImplementation (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()),
+ CID_Handler::component_impl_descr (src.referencedImplementation));
+ }
+ };
+
+ typedef Sequence_Handler < PackagedComponentImplementation,
+ ::Deployment::PackagedComponentImplementations,
+ ::Deployment::PackagedComponentImplementation,
+ PCI_Handler::handle_pci > PCI_Functor;
+
+
+ void
+ CPD_Handler::handle_component_package_descr (const ComponentPackageDescription &desc,
+ ::Deployment::ComponentPackageDescription &toconfig)
+ {
+ DANCE_TRACE ("CPD_Handler::component_package_descr");
+
+ auto_ptr < ComponentPackageDescription > xsc_cpd;
+ const ComponentPackageDescription *cpd = 0;
+
+ if (desc.href_p ())
+ {
+ xsc_cpd.reset (CPD_Handler::resolve_cpd (desc.href ().c_str ()));
+ cpd = xsc_cpd.get ();
+ }
+ else
+ cpd = &desc;
+
+ if (cpd->label_p ())
+ toconfig.label = ACE_TEXT_ALWAYS_CHAR (cpd->label ().c_str ());
+
+ if (cpd->UUID_p ())
+ toconfig.UUID = ACE_TEXT_ALWAYS_CHAR (cpd->UUID ().c_str ());
+
+ // CID
+ if (cpd->realizes_p ())
+ Comp_Intf_Descr_Handler::comp_intf_descr (cpd->realizes (),
+ toconfig.realizes);
+
+ // Config Properties
+ toconfig.configProperty.length (desc.count_configProperty ());
+ std::for_each (cpd->begin_infoProperty (),
+ cpd->end_infoProperty (),
+ Property_Functor (toconfig.configProperty));
+
+ // ACE_ERROR ((LM_ERROR, "***** Count of PCIs is %i\n",
+ // cpd->count_implementation ()));
+
+ // Packaged Component Implementations
+ toconfig.implementation.length ( cpd->count_implementation ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (PCI_Handler::handle_pci,
+ (*cpd->begin_implementation ()),
+ toconfig.implementation);
+ std::for_each (cpd->begin_implementation (),
+ cpd->end_implementation (),
+ PCI_Functor (toconfig.implementation));
+
+ // Info Properties
+ toconfig.infoProperty.length (cpd->count_infoProperty ());
+ std::for_each (cpd->begin_infoProperty (),
+ cpd->end_infoProperty (),
+ Property_Functor (toconfig.infoProperty));
+ }
+
+ ComponentPackageDescription
+ CPD_Handler::component_package_descr (const Deployment::ComponentPackageDescription& src)
+ {
+ DANCE_TRACE ("CPD_Handler::component_package_descr - reverse");
+ ComponentPackageDescription toconfig;
+
+ if (src.label.in () != 0)
+ toconfig.label (ACE_TEXT_CHAR_TO_TCHAR (src.label.in ()));
+
+ if (src.UUID.in () != 0)
+ toconfig.UUID (ACE_TEXT_CHAR_TO_TCHAR (src.UUID.in ()));
+
+ {
+ toconfig.realizes
+ (Comp_Intf_Descr_Handler::comp_intf_descr (src.realizes));
+ }
+#if 0
+ for (size_t i = 0; i < src.configProperty.length (); ++i)
+ {
+ toconfig.add_configProperty (
+ Property_Handler::get_property (src.configProperty[i]));
+ }
+
+ { // Packaged Component Implementations
+ for (size_t i = 0; i < src.implementation.length (); ++i)
+ toconfig.add_implementation (
+ PCI_Handler::get_pci (src.implementation[i]));
+ }
+
+ for (size_t i = 0; i < src.infoProperty.length (); ++i)
+ {
+ toconfig.add_infoProperty (
+ Property_Handler::get_property (src.infoProperty[i]));
+ }
+#endif
+ return toconfig;
+ }
+
+ ComponentPackageDescription * CPD_Handler::resolve_cpd (const ACE_TCHAR *uri)
+ {
+ DANCE_TRACE ("CPD_Handler::resolve_cpd");
+ if (!XML_Helper::XML_HELPER.is_initialized ())
+ return 0;
+
+ xercesc::DOMDocument* dom =
+ XML_Helper::XML_HELPER.create_dom (uri);
+
+ if (!dom)
+ throw Parse_Error (ACE_TEXT ("Unable to create DOM for component package description"));
+
+ try {
+ //ACE_ERROR ((LM_ERROR, "Creating new CPD XSC Object\n"));
+ return new ComponentPackageDescription (reader::componentPackageDescription (dom));
+ }
+ catch (...) {
+ throw Parse_Error (ACE_TEXT ("Unable to create XSC structure for CID"));
+ }
+ }
+ }
+
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.h
new file mode 100644
index 00000000000..049b2a72cb2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/CPD_Handler.h
@@ -0,0 +1,74 @@
+//================================================
+/**
+ * @file CPD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_STD_CPD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_STD_CPD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include <memory>
+#include "XML_Typedefs.h"
+#include "Utils/Functors.h"
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+
+namespace Deployment
+{
+ struct ComponentPackageDescription;
+ class ComponentPackageDescriptions;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentPackageDescription;
+
+ namespace Packaging
+ {
+
+ /*
+ * @class CPD_Handler
+ *
+ * @brief Handler class for <CCMComponentPackageDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Packaging_Handlers_Export CPD_Handler
+ {
+
+ public:
+ /// Maps the values from the XSC object
+ /// <ComponentPackageDescription> to the CORBA IDL type
+ /// <Deployment::ComponentPackageDescription>.
+ static void handle_component_package_descr (const ComponentPackageDescription &desc,
+ ::Deployment::ComponentPackageDescription &toconfig);
+
+ static ComponentPackageDescription
+ component_package_descr (const Deployment::ComponentPackageDescription& src);
+ private:
+ static ComponentPackageDescription * resolve_cpd (const ACE_TCHAR *uri);
+
+ };
+
+ typedef Sequence_Handler < ComponentPackageDescription,
+ ::Deployment::ComponentPackageDescriptions,
+ ::Deployment::ComponentPackageDescription,
+ CPD_Handler::handle_component_package_descr > CPD_Functor;
+
+ }
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_CPD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
new file mode 100644
index 00000000000..c4f6058505e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
@@ -0,0 +1,165 @@
+// $Id$
+#include "tao/AnyTypeCode/TypeCode.h"
+#include "Comp_Intf_Descr_Handler.h"
+#include "XML_Typedefs.h"
+#include "Utils/Exceptions.h"
+#include "Utils/Functors.h"
+#include "DataType_Handler.h"
+#include "Property_Handler.h"
+#include "Deployment.hpp"
+#include "Package_Handlers/CPD_Handler.h"
+#include "Config_Handlers/CPD_Handler.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+ struct Comp_Prop_Handler
+ {
+ static void handle_cpd (const ComponentPropertyDescription &desc,
+ ::Deployment::ComponentPropertyDescription &toconfig)
+ {
+ DANCE_TRACE ("Comp_Prop_Handler::get_cpd");
+
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ());
+ DataType_Handler::data_type (desc.type (),
+ toconfig.type);
+ }
+
+ static ComponentPropertyDescription
+ get_cpd (const ::Deployment::ComponentPropertyDescription &src)
+ {
+ DANCE_TRACE ("Comp_Prop_Handler::get_cpd - reverse");
+
+ return ComponentPropertyDescription (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()),
+ DataType_Handler::data_type (src.type));
+ }
+
+ };
+
+ typedef Sequence_Handler < ComponentPropertyDescription,
+ ::Deployment::ComponentPropertyDescriptions,
+ ::Deployment::ComponentPropertyDescription,
+ Comp_Prop_Handler::handle_cpd > Comp_Prop_Functor;
+
+
+ void
+ Comp_Intf_Descr_Handler::comp_intf_descr (
+ const ComponentInterfaceDescription &desc,
+ ::Deployment::ComponentInterfaceDescription &toconfig)
+ {
+ DANCE_TRACE ("Comp_Intf_Descr_Handler::comp_intf_descr");
+
+ const ComponentInterfaceDescription *cid = 0;
+ std::auto_ptr <ComponentInterfaceDescription> safe_cid;
+
+ if (desc.href_p ())
+ {
+ safe_cid.reset (Comp_Intf_Descr_Handler::resolve_cid (desc.href ().c_str ()));
+ cid = safe_cid.get ();
+ }
+ else
+ cid = &desc;
+
+ if (cid->label_p ())
+ toconfig.label = ACE_TEXT_ALWAYS_CHAR (cid->label ().c_str ());
+
+ if (cid->UUID_p ())
+ toconfig.UUID = ACE_TEXT_ALWAYS_CHAR (cid->UUID ().c_str ());
+
+ // MAJO: SpecificType should be required.
+ if (cid->specificType_p ())
+ toconfig.specificType = ACE_TEXT_ALWAYS_CHAR (cid->specificType ().c_str ());
+
+ toconfig.supportedType.length (cid->count_supportedType ());
+ std::for_each (cid->begin_supportedType (),
+ cid->end_supportedType (),
+ String_Seq_Functor (toconfig.supportedType));
+
+ toconfig.idlFile.length (cid->count_idlFile ());
+ std::for_each (cid->begin_idlFile (),
+ cid->end_idlFile (),
+ String_Seq_Functor (toconfig.idlFile));
+
+ toconfig.configProperty.length (cid->count_configProperty ());
+ std::for_each (cid->begin_configProperty (),
+ cid->end_configProperty (),
+ Property_Functor (toconfig.configProperty));
+
+ toconfig.port.length (cid->count_port ());
+ std::for_each (cid->begin_port (),
+ cid->end_port (),
+ CIAO::Config_Handlers::CPD_Functor (toconfig.port));
+
+ toconfig.property.length (cid->count_property ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (Comp_Prop_Handler::handle_cpd,
+ (*cid->begin_property ()),
+ toconfig.property);
+ std::for_each (cid->begin_property (),
+ cid->end_property (),
+ Comp_Prop_Functor (toconfig.property));
+
+ toconfig.infoProperty.length (cid->count_infoProperty ());
+ std::for_each (cid->begin_infoProperty (),
+ cid->end_infoProperty (),
+ Property_Functor (toconfig.infoProperty));
+ }
+
+
+ ComponentInterfaceDescription
+ Comp_Intf_Descr_Handler::comp_intf_descr (
+ const ::Deployment::ComponentInterfaceDescription &src)
+ {
+ DANCE_TRACE ("Comp_Intf_Descr_Handler::comp_intf_descr - reverse");
+ ComponentInterfaceDescription retval;
+
+ retval.label (ACE_TEXT_CHAR_TO_TCHAR (src.label.in ()));
+ retval.UUID (ACE_TEXT_CHAR_TO_TCHAR (src.UUID.in ()));
+ retval.specificType (ACE_TEXT_CHAR_TO_TCHAR (src.specificType.in ()));
+#if 0
+ for (CORBA::ULong i = 0; i < src.supportedType.length (); ++i)
+ retval.add_supportedType (src.supportedType[i].in ());
+
+ for (CORBA::ULong i = 0; i < src.idlFile.length (); ++i)
+ retval.add_idlFile (src.idlFile[i].in ());
+
+ 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.port.length (); ++i)
+ retval.add_port
+ (CIAO::Config_Handlers::CPD_Handler::component_port_description (src.port[i]));
+
+ for (CORBA::ULong i = 0; i < src.property.length (); ++i)
+ retval.add_property (Comp_Prop_Handler::get_cpd (src.property[i]));
+
+ for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i)
+ retval.add_infoProperty (
+ Property_Handler::get_property (src.infoProperty[i]));
+#endif
+ return retval;
+ }
+
+ ComponentInterfaceDescription *
+ Comp_Intf_Descr_Handler::resolve_cid (const ACE_TCHAR *uri)
+ {
+ DANCE_TRACE ("Comp_Intf_Descr_Handler::resolve_cid");
+
+ xercesc::DOMDocument *dom = XML_Helper::XML_HELPER.create_dom (uri);
+
+ if (!dom)
+ throw Parse_Error (ACE_TEXT ("Unable to create DOM for Component Interface Description."));
+
+ try {
+ return new ComponentInterfaceDescription
+ (reader::componentInterfaceDescription (dom));
+ }
+ catch (...) {
+ throw Parse_Error (ACE_TEXT ("Unable to create XSC structure for Component Interface Description"));
+ }
+ }
+ }
+ }}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h
new file mode 100644
index 00000000000..4655edfa97b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h
@@ -0,0 +1,54 @@
+/**
+ * @file Comp_Intf_Descr_Handler.h
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ */
+
+#ifndef CIAO_PACKAGING_COMP_INTF_DESCR_HANDLER_H
+#define CIAO_PACKAGING_COMP_INTF_DESCR_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "XML_Typedefs.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentInterfaceDescription;
+
+ namespace Packaging
+ {
+
+ /**
+ * @class Comp_Intf_Descr_Handler
+ *
+ * @brief Handler class for ComponentInterfaceDescription.
+ */
+ class Packaging_Handlers_Export Comp_Intf_Descr_Handler
+ {
+ public:
+ static void comp_intf_descr (const ComponentInterfaceDescription &descr,
+ ::Deployment::ComponentInterfaceDescription &toconfig);
+
+ static ComponentInterfaceDescription
+ comp_intf_descr (const ::Deployment::ComponentInterfaceDescription &src);
+
+ private:
+ static ComponentInterfaceDescription *resolve_cid (const ACE_TCHAR *uri);
+ };
+ }
+ }
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_PACKAGING_COMP_INTF_DESCR_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.cpp
new file mode 100644
index 00000000000..99fe7fe2ade
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.cpp
@@ -0,0 +1,124 @@
+// $Id$
+#include "Package_Handlers/IAD_Handler.h"
+#include "Package_Handlers/NIA_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "Property_Handler.h"
+#include "Req_Handler.h"
+#include "Utils/Functors.h"
+#include "Utils/Exceptions.h"
+#include "XML_Typedefs.h"
+
+#include "Deployment.hpp"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+
+ void
+ IAD_Handler::impl_artifact_descr (const ImplementationArtifactDescription &desc,
+ ::Deployment::ImplementationArtifactDescription &toconfig)
+ {
+ DANCE_TRACE ("IAD_Handler::impl_artifact_descr");
+
+ const ImplementationArtifactDescription *iad = 0;
+ std::auto_ptr <ImplementationArtifactDescription> safe_iad;
+
+ if (desc.href_p ())
+ {
+ safe_iad.reset (IAD_Handler::resolve_iad (desc.href ().c_str ()));
+ iad = safe_iad.get ();
+ }
+ else
+ iad = &desc;
+
+
+ if (iad->label_p ())
+ toconfig.label = ACE_TEXT_ALWAYS_CHAR ( iad->label ().c_str ());
+
+ if (iad->UUID_p ())
+ toconfig.UUID = ACE_TEXT_ALWAYS_CHAR (iad->UUID ().c_str ());
+
+ toconfig.location.length (iad->count_location ());
+ std::for_each (iad->begin_location (),
+ iad->end_location (),
+ String_Seq_Functor (toconfig.location));
+
+ toconfig.dependsOn.length (iad->count_dependsOn ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (NIA_Handler::handle_nia,
+ (*desc.begin_dependsOn ()),
+ toconfig.dependsOn);
+ std::for_each (iad->begin_dependsOn (),
+ iad->end_dependsOn (),
+ NIA_Functor (toconfig.dependsOn));
+
+ toconfig.execParameter.length (iad->count_execParameter ());
+ std::for_each (iad->begin_execParameter (),
+ iad->end_execParameter (),
+ Property_Functor (toconfig.execParameter));
+
+ toconfig.infoProperty.length (iad->count_infoProperty ());
+ std::for_each (iad->begin_infoProperty (),
+ iad->end_infoProperty (),
+ Property_Functor (toconfig.infoProperty));
+
+ toconfig.deployRequirement.length (iad->count_deployRequirement ());
+ std::for_each (iad->begin_deployRequirement (),
+ iad->end_deployRequirement (),
+ Requirement_Functor (toconfig.deployRequirement ));
+ }
+
+ ImplementationArtifactDescription
+ IAD_Handler::impl_artifact_descr (const ::Deployment::ImplementationArtifactDescription &src)
+ {
+ DANCE_TRACE ("IAD_Handler::impl_artifact_descr - reverse");
+ ImplementationArtifactDescription retval;
+
+ retval.label (ACE_TEXT_CHAR_TO_TCHAR (src.label.in ()));
+ retval.UUID (ACE_TEXT_CHAR_TO_TCHAR (src.UUID.in ()));
+#if 0
+ for (CORBA::ULong i = 0; i < src.location.length (); ++i)
+ retval.add_location (src.location[i].in ());
+
+ for (CORBA::ULong i = 0; i < src.dependsOn.length (); ++i)
+ retval.add_dependsOn (NIA_Handler::get_nia (src.dependsOn[i]));
+
+ for (CORBA::ULong i = 0; i < src.execParameter.length (); ++i)
+ retval.add_execParameter
+ (Property_Handler::get_property (src.execParameter[i]));
+
+ for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i)
+ retval.add_infoProperty
+ (Property_Handler::get_property ( src.infoProperty[i]));
+
+ for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i)
+ retval.add_deployRequirement
+ (Req_Handler::get_requirement (src.deployRequirement[i]));
+#endif
+ return retval;
+ }
+
+ ImplementationArtifactDescription * IAD_Handler::resolve_iad (const ACE_TCHAR *uri)
+ {
+ DANCE_TRACE ("IAD_Handler::resolve_iad");
+
+ xercesc::DOMDocument *dom = XML_Helper::XML_HELPER.create_dom (uri);
+
+ if (!dom)
+ throw Parse_Error (ACE_TEXT ("Unable to create DOM for IAD"));
+
+ try {
+ return new ImplementationArtifactDescription
+ (reader::implementationArtifactDescription (dom));
+ }
+ catch (...) {
+ throw Parse_Error (ACE_TEXT ("Unable to create XSC structure for IAD"));
+ }
+ }
+
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.h
new file mode 100644
index 00000000000..89fdab073bf
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/IAD_Handler.h
@@ -0,0 +1,66 @@
+//================================================
+/**
+ * @file IAD_Handler.h
+ *
+ * $Id$
+ *
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct ImplementationArtifactDescription;
+ struct ImplementationArtifactDescriptions;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ImplementationArtifactDescription;
+ namespace Packaging
+ {
+ /*
+ * @class IAD_Handler
+ *
+ * @brief Handler class for <CCMImplementationArtifactDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Packaging_Handlers_Export IAD_Handler
+ {
+ public:
+ /// Maps the values from the XSC object
+ /// <ImplementationArtifactDescription> to the CORBA IDL type
+ /// <Deployment::ImplementationArtifactDescription>.
+ static void
+ impl_artifact_descr (const ImplementationArtifactDescription &desc,
+ ::Deployment::ImplementationArtifactDescription &toconfig);
+
+
+ static ImplementationArtifactDescription
+ impl_artifact_descr (const Deployment::ImplementationArtifactDescription& src);
+
+ static ImplementationArtifactDescription * resolve_iad (const ACE_TCHAR *uri);
+ };
+ }
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/NIA_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/NIA_Handler.h
new file mode 100644
index 00000000000..923104dc27b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/NIA_Handler.h
@@ -0,0 +1,65 @@
+/**
+ * @file NIA_Handler.h
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ */
+
+#ifndef CIAO_PACKAGING_NIA_HANDLER_H
+#define CIAO_PACKAGING_NIA_HANDLER_H
+
+#include /**/ "ace/pre.h"
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+#include "Utils/Functors.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "iad.hpp"
+
+namespace Deployment
+{
+ struct NamedImplementationArtifact;
+ class NamedImplementationArtifacts;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class NamedImplementationArtifact;
+
+ namespace Packaging
+ {
+ /**
+ * @class NIA_Handler
+ * @brief Handler class for NamedImplementationArtifact types.
+ */
+ class Packaging_Handlers_Export NIA_Handler
+ {
+ public:
+ static void handle_nia (const NamedImplementationArtifact &desc,
+ ::Deployment::NamedImplementationArtifact &toconfig)
+ {
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ());
+ IAD_Handler::impl_artifact_descr (desc.referencedArtifact (),
+ toconfig.referencedArtifact);
+ }
+
+
+ static NamedImplementationArtifact
+ get_nia (const ::Deployment::NamedImplementationArtifact &src)
+ {
+ return NamedImplementationArtifact (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()),
+ IAD_Handler::impl_artifact_descr (src.referencedArtifact));
+ }
+
+ };
+
+ typedef Sequence_Handler < NamedImplementationArtifact,
+ ::Deployment::NamedImplementationArtifacts,
+ ::Deployment::NamedImplementationArtifact,
+ NIA_Handler::handle_nia > NIA_Functor;
+ }
+ }
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_PACKAGING_NIA_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.cpp
new file mode 100644
index 00000000000..791f153d126
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.cpp
@@ -0,0 +1,165 @@
+// $Id$
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "XML_Typedefs.h"
+#include "XML/XercesString.h"
+#include "Utils/Exceptions.h"
+#include "Package_Handlers/PCD_Handler.h"
+#include "Package_Handlers/CPD_Handler.h"
+#include "toplevel.hpp"
+#include "Deployment.hpp"
+#include "Property_Handler.h"
+#include "Req_Handler.h"
+
+#include <memory>
+
+using CIAO::XML::XStr;
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+ void
+ PCD_Handler::package_config (const ACE_TCHAR *uri,
+ ::Deployment::PackageConfiguration &toconfig)
+ {
+ XERCES_CPP_NAMESPACE::DOMDocument *dom = XML_Helper::XML_HELPER.create_dom (uri);
+
+ if (dom == 0)
+ {
+ std::basic_string<ACE_TCHAR> error (ACE_TEXT ("Unable to open file: "));
+ error += uri;
+ throw Parse_Error (error);
+ }
+
+ XStr root = dom->getDocumentElement ()->getTagName ();
+
+ if (root == XStr (ACE_TEXT ("Deployment:topLevelPackageDescription")))
+ {
+ TopLevelPackageDescription tpd;
+
+ tpd = reader::topLevelPackageDescription (dom);
+
+ PCD_Handler::package_config (*(*tpd.begin_package ()),
+ toconfig);
+ }
+ else if (root == XStr (ACE_TEXT ("Deployment:packageConfiguration")))
+ {
+ PackageConfiguration pcd;
+ pcd = reader::packageConfiguration (dom);
+ PCD_Handler::package_config (pcd, toconfig);
+ }
+ else
+ {
+ std::string error ("Invliad file passed to package_config, has base ");
+
+ char *croot = xercesc::XMLString::transcode (root);
+
+ error += croot;
+
+ delete [] croot;
+
+ throw Plan_Error (ACE_TEXT ("Invalid file passed to package_config, had base"));
+ }
+ }
+
+ void
+ PCD_Handler::package_config (const PackageConfiguration &desc,
+ ::Deployment::PackageConfiguration &toconfig)
+ {
+ DANCE_TRACE ("PCD_Handler::package_config");
+ std::auto_ptr < PackageConfiguration > xsc_pcd;
+
+ const PackageConfiguration *pcd;
+
+ if (desc.contentLocation_p ())
+ {
+ // Take ownership of the resolved pcd
+ xsc_pcd.reset (PCD_Handler::resolve_package_config (desc.contentLocation ().c_str ()));
+ pcd = xsc_pcd.get ();
+ }
+ else
+ pcd = &desc;
+
+ if (pcd->label_p ())
+ toconfig.label =
+ ACE_TEXT_ALWAYS_CHAR (pcd->label ().c_str ());
+
+ if (pcd->UUID_p ())
+ toconfig.UUID =
+ ACE_TEXT_ALWAYS_CHAR (pcd->UUID ().c_str ());
+
+ if (pcd->basePackage_p ())
+ {
+ toconfig.basePackage.length (1);
+ CPD_Handler::handle_component_package_descr (pcd->basePackage (),
+ toconfig.basePackage [0]);
+ }
+
+ // @@ MAJO: Support other elements present here.
+
+ toconfig.configProperty.length (desc.count_configProperty ());
+ std::for_each (desc.begin_configProperty (),
+ desc.end_configProperty (),
+ Property_Functor (toconfig.configProperty));
+
+ toconfig.selectRequirement.length (desc.count_selectRequirement ());
+ std::for_each (desc.begin_selectRequirement (),
+ desc.end_selectRequirement (),
+ Requirement_Functor (toconfig.selectRequirement));
+
+ }
+
+ PackageConfiguration
+ PCD_Handler::package_config (const Deployment::PackageConfiguration& src)
+ {
+ DANCE_TRACE ("PCD_Handler::package_config - reverse");
+ PackageConfiguration pcd = PackageConfiguration ();
+
+ if (src.label.in () != 0)
+ pcd.label (ACE_TEXT_CHAR_TO_TCHAR (src.label.in ()));
+
+ if (src.UUID.in () != 0)
+ pcd.UUID (ACE_TEXT_CHAR_TO_TCHAR (src.UUID.in ()));
+
+ if (src.basePackage.length () > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "5\n"));
+ pcd.basePackage (CPD_Handler::component_package_descr (src.basePackage[0]));
+ }
+#if 0
+ // @@ MAJO: Support other elements present here.
+ for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i)
+ pcd.add_configProperty (Property_Handler::get_property (src.configProperty[i]));
+
+ for (CORBA::ULong i = 0; i < src.selectRequirement.length (); ++i)
+ pcd.add_selectRequirement (Req_Handler::get_requirement (src.selectRequirement[i]));
+#endif
+ return pcd;
+
+ }
+
+ PackageConfiguration * PCD_Handler::resolve_package_config (const ACE_TCHAR *uri)
+ {
+ xercesc::DOMDocument* dom =
+ XML_Helper::XML_HELPER.create_dom (uri);
+
+ if (!dom)
+ throw Parse_Error (ACE_TEXT ("Unable to create DOM for PackageConfiguration"));
+
+ try {
+ return new PackageConfiguration (reader::packageConfiguration (dom));
+ }
+ catch (...) {
+ throw Parse_Error (ACE_TEXT ("Unable to create XSC structure for PackageConfiguration"));
+ }
+
+ }
+
+
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.h
new file mode 100644
index 00000000000..b1a0c377d9d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PCD_Handler.h
@@ -0,0 +1,69 @@
+//================================================
+/**
+ * @file PCD_Handler.h
+ *
+ * $Id$
+ *
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_PCD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_PCD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Packaging_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct PackageConfiguration;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class PackageConfiguration;
+
+ namespace Packaging
+ {
+ /*
+ * @class PCD_Handler
+ *
+ * @brief Handler class for <CCMPackageConfiguration> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Packaging_Handlers_Export PCD_Handler
+ {
+
+ public:
+ static void package_config (const ACE_TCHAR *uri,
+ ::Deployment::PackageConfiguration &toconfig);
+
+ /// Maps the values from the XSC object
+ /// <PackageConfiguration> to the CORBA IDL type
+ /// <Deployment::PackageConfiguration>.
+ static void package_config (const PackageConfiguration &desc,
+ ::Deployment::PackageConfiguration &toconfig);
+
+ static PackageConfiguration package_config (const Deployment::PackageConfiguration& src);
+
+ private:
+ static PackageConfiguration *resolve_package_config (const ACE_TCHAR *uri);
+ };
+ }
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_STD_PCD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.cpp
new file mode 100644
index 00000000000..5bddb09af60
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.cpp
@@ -0,0 +1,75 @@
+// $Id$
+
+#include "STD_PC_Intf.h"
+#include "Utils/XML_Helper.h"
+#include "Deployment.hpp"
+#include "STD_PCD_Handler.h"
+#include "ciao/Packaging_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ STD_PC_Intf::STD_PC_Intf (const char *file)
+ {
+ if (!this->prepare_PC (file))
+ throw;
+ }
+
+ bool
+ STD_PC_Intf::prepare_PC (const char *file)
+ {
+ DANCE_TRACE("STD_PC_Intf::prepare_PC");
+
+ ACE_Auto_Ptr<XML_Helper> helper (new XML_Helper);
+
+ if (!helper->is_initialized ())
+ return false;
+
+ // parse the .pcd (PackageConfigurationDescription) file
+ xercesc::DOMDocument *dom =
+ helper->create_dom (file);
+
+ if (!dom)
+ return false;
+
+
+ PackageConfiguration pc =
+ packageConfiguration (dom);
+
+
+ Deployment::PackageConfiguration idl_pc;
+
+
+ STD_PCD_Handler pcd_handler (helper.get ());
+
+ pcd_handler.package_config (pc,
+ idl_pc);
+
+
+ Deployment::PackageConfiguration *p_idl_pc =
+ new Deployment::PackageConfiguration (idl_pc);
+
+ // let ACE_Auto_Ptr take over
+ this->idl_pc_.reset (p_idl_pc);
+
+ if (this->idl_pc_.get ())
+ return true;
+
+ return false;
+ }
+
+ ::Deployment::PackageConfiguration const *
+ STD_PC_Intf::get_PC (void) const
+ {
+ return this->idl_pc_.get ();
+ }
+
+ ::Deployment::PackageConfiguration *
+ STD_PC_Intf::get_PC (void)
+ {
+ return this->idl_pc_.release ();
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.h
new file mode 100644
index 00000000000..c15ae0389b9
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/PC_Intf.h
@@ -0,0 +1,58 @@
+//==============================================================
+/**
+ * @file PC_Intf.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_STD_PC_INTF_H
+#define CIAO_CONFIG_STD_PC_INTF_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#include "ace/Auto_Ptr.h"
+
+
+namespace Deployment
+{
+ struct PackageConfiguration ;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ /*
+ * @class PC_Intf
+ *
+ * @brief Wrapper class for PackageConfiguration extraction
+ *
+ * This class defines wrapper functions for extracting
+ * PackageConfiguration IDL structures from XSC structures.
+ * It serves as the public interface used by application
+ * developers.
+ *
+ */
+ class Config_Handlers_Export STD_PC_Intf
+ {
+ public:
+ STD_PC_Intf (const char *file);
+
+ ::Deployment::PackageConfiguration const *get_PC (void) const;
+ ::Deployment::PackageConfiguration *get_PC (void);
+
+ protected:
+ bool prepare_PC (const char *file);
+
+ private:
+ ACE_Auto_Ptr< ::Deployment::PackageConfiguration> idl_pc_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_CONFIG_STD_PC_INTF_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Package_Handlers.mpc b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Package_Handlers.mpc
new file mode 100644
index 00000000000..d631343c9e5
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Package_Handlers.mpc
@@ -0,0 +1,43 @@
+// $Id$
+
+project (Package_Config_Handlers) : acelib, dance_deployment_stub, dance_config_handlers_base, dance, typecodefactory, dance_output {
+ sharedname = Package_Config_Handlers
+ dynamicflags = PACKAGING_HANDLERS_BUILD_DLL
+
+ includes += $(CIAO_ROOT)/ciao
+ libpaths += $(CIAO_ROOT)/bin
+
+ after += XSC_Config_Handlers_Common \
+ XSC_Config_Handlers \
+ XSC_DynAny_Handler \
+ XSC_XML_Handlers \
+ CIAO_XML_Utils \
+
+ libs += XSC_Config_Handlers_Common \
+ XSC_Config_Handlers \
+ XSC_DynAny_Handler \
+ XSC_XML_Handlers \
+ CIAO_XML_Utils \
+
+ Source_files {
+ CAD_Handler.cpp
+ CID_Handler.cpp
+ Comp_Intf_Descr_Handler.cpp
+ CPD_Handler.cpp
+ IAD_Handler.cpp
+ PCD_Handler.cpp
+ SID_Handler.cpp
+ }
+
+ Header_Files {
+ CAD_Handler.h
+ CID_Handler.h
+ Comp_Intf_Descr_Handler.h
+ CPD_Handler.h
+ IAD_Handler.h
+ PCD_Handler.h
+ SID_Handler.h
+ }
+
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h
new file mode 100644
index 00000000000..86193a1a664
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl Packaging_Handlers
+// ------------------------------
+#ifndef PACKAGING_HANDLERS_EXPORT_H
+#define PACKAGING_HANDLERS_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (PACKAGING_HANDLERS_HAS_DLL)
+# define PACKAGING_HANDLERS_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && PACKAGING_HANDLERS_HAS_DLL */
+
+#if !defined (PACKAGING_HANDLERS_HAS_DLL)
+# define PACKAGING_HANDLERS_HAS_DLL 1
+#endif /* ! PACKAGING_HANDLERS_HAS_DLL */
+
+#if defined (PACKAGING_HANDLERS_HAS_DLL) && (PACKAGING_HANDLERS_HAS_DLL == 1)
+# if defined (PACKAGING_HANDLERS_BUILD_DLL)
+# define Packaging_Handlers_Export ACE_Proper_Export_Flag
+# define PACKAGING_HANDLERS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define PACKAGING_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* PACKAGING_HANDLERS_BUILD_DLL */
+# define Packaging_Handlers_Export ACE_Proper_Import_Flag
+# define PACKAGING_HANDLERS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define PACKAGING_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* PACKAGING_HANDLERS_BUILD_DLL */
+#else /* PACKAGING_HANDLERS_HAS_DLL == 1 */
+# define Packaging_Handlers_Export
+# define PACKAGING_HANDLERS_SINGLETON_DECLARATION(T)
+# define PACKAGING_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* PACKAGING_HANDLERS_HAS_DLL == 1 */
+
+// Set PACKAGING_HANDLERS_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (PACKAGING_HANDLERS_NTRACE)
+# if (ACE_NTRACE == 1)
+# define PACKAGING_HANDLERS_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define PACKAGING_HANDLERS_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !PACKAGING_HANDLERS_NTRACE */
+
+#if (PACKAGING_HANDLERS_NTRACE == 1)
+# define PACKAGING_HANDLERS_TRACE(X)
+#else /* (PACKAGING_HANDLERS_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define PACKAGING_HANDLERS_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (PACKAGING_HANDLERS_NTRACE == 1) */
+
+#endif /* PACKAGING_HANDLERS_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.cpp
new file mode 100644
index 00000000000..f19aa3ef4bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.cpp
@@ -0,0 +1,142 @@
+// $Id$
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "Package_Handlers/SID_Handler.h"
+#include "cid.hpp"
+#include "DAnCE/Deployment/DeploymentC.h"
+#include "Package_Handlers/CPD_Handler.h"
+#include "Package_Handlers/PCD_Handler.h"
+#include "Package_Handlers/Comp_Intf_Descr_Handler.h"
+#include "Req_Handler.h"
+#include "Property_Handler.h"
+
+#include "ace/UUID.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+ IDREF_Base<CORBA::ULong> SID_Handler::IDREF;
+
+ void
+ SID_Handler::handle_sub_comp_inst_descr (const SubcomponentInstantiationDescription &desc,
+ ::Deployment::SubcomponentInstantiationDescription &toconfig)
+ {
+ DANCE_TRACE ("SID_Handler::sub_comp_inst_descr");
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ());
+
+ if (desc.basePackage_p ())
+ {
+ toconfig.basePackage.length (1);
+ CPD_Handler::handle_component_package_descr (desc.basePackage (),
+ toconfig.basePackage[0]);
+ }
+ else if (desc.specializedConfig_p ())
+ {
+ toconfig.specializedConfig.length (1);
+ PCD_Handler::package_config (desc.specializedConfig (),
+ toconfig.specializedConfig[0]);
+ }
+ else if (desc.importedPackage_p ())
+ {
+ toconfig.importedPackage.length (1);
+ toconfig.importedPackage[0].location.length (desc.importedPackage ().count_location ());
+
+ std::for_each (desc.importedPackage ().begin_location (),
+ desc.importedPackage ().end_location (),
+ String_Seq_Functor (toconfig.importedPackage[0].location));
+ }
+ else if (desc.referencedPackage_p ())
+ {
+ toconfig.referencedPackage.length (1);
+
+ if (desc.referencedPackage ().requiredUUID_p ())
+ toconfig.referencedPackage[0].requiredUUID =
+ ACE_TEXT_ALWAYS_CHAR (desc.referencedPackage ().requiredUUID ().c_str ());
+
+ if (desc.referencedPackage ().requiredName_p ())
+ toconfig.referencedPackage[0].requiredName =
+ ACE_TEXT_ALWAYS_CHAR (desc.referencedPackage ().requiredName ().c_str ());
+
+ Comp_Intf_Descr_Handler::comp_intf_descr (desc.referencedPackage ().requiredType (),
+ toconfig.referencedPackage[0].requiredType);
+
+ }
+
+ toconfig.selectRequirement.length (desc.count_selectRequirement ());
+ std::for_each (desc.begin_selectRequirement (),
+ desc.end_selectRequirement (),
+ Requirement_Functor (toconfig.selectRequirement));
+
+ toconfig.configProperty.length (desc.count_configProperty ());
+ std::for_each (desc.begin_configProperty (),
+ desc.end_configProperty (),
+ Property_Functor (toconfig.configProperty));
+
+ if (desc.id_p ())
+ {
+ ACE_TString str (desc.id ().c_str ());
+ SID_Handler::IDREF.bind_next_available (str);
+ }
+ else
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Warning: SID With Name %s has no ID\n"),
+ desc.name ().c_str ()));
+
+ }
+
+ SubcomponentInstantiationDescription
+ SID_Handler::sub_comp_inst_descr (const Deployment::SubcomponentInstantiationDescription &src)
+ {
+ DANCE_TRACE ("SID_Handler::sub_comp_inst_descr - reverse");
+ SubcomponentInstantiationDescription retval (ACE_TEXT_CHAR_TO_TCHAR (src.name.in ()));
+
+ if (src.basePackage.length () == 1)
+ retval.basePackage
+ (CPD_Handler::component_package_descr (src.basePackage[0]));
+ else if (src.specializedConfig.length () == 1)
+ retval.specializedConfig
+ (PCD_Handler::package_config (src.specializedConfig[0]));
+ else if (src.importedPackage.length () == 1)
+ {
+ ComponentPackageImport ci;
+#if 0
+ for (CORBA::ULong i = 0; i < src.importedPackage[0].location.length (); ++i)
+ ci.add_location (src.importedPackage[0].location[i].in ());
+#endif
+ retval.importedPackage (ci);
+ }
+ else if (src.referencedPackage.length () == 1)
+ {
+ ComponentPackageReference cpr (Comp_Intf_Descr_Handler::comp_intf_descr (src.referencedPackage[0].requiredType));
+ cpr.requiredUUID (ACE_TEXT_CHAR_TO_TCHAR (src.referencedPackage[0].requiredUUID.in ()));
+ cpr.requiredName (ACE_TEXT_CHAR_TO_TCHAR (src.referencedPackage[0].requiredName.in ()));
+
+ retval.referencedPackage (cpr);
+ }
+#if 0
+ for (CORBA::ULong i = 0; i < src.selectRequirement.length (); ++i)
+ retval.add_selectRequirement
+ (Req_Handler::get_requirement (src.selectRequirement[i]));
+
+ for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i)
+ retval.add_configProperty
+ (Property_Handler::get_property (src.configProperty[i]));
+#endif
+ // @@MAJO This is not a good way of binding reverse IDREFS.
+ std::auto_ptr <ACE_Utils::UUID> safe_uuid (
+ ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID ());
+ ACE_TString uuid ( ACE_TEXT_CHAR_TO_TCHAR (safe_uuid->to_string ()->c_str ()));
+
+ // ACE_ERROR ((LM_ERROR, "*** Binding to %s\n",
+ // uuid.c_str ()));
+
+ SID_Handler::IDREF.bind_next_available (uuid);
+
+ return retval;
+ }
+
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.h
new file mode 100644
index 00000000000..2083b91b9b6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Package_Handlers/SID_Handler.h
@@ -0,0 +1,71 @@
+/**
+ * @file SID_Handler.h
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ */
+
+
+#ifndef CIAO_PACKAGING_SID_HANDLER_H
+#define CIAO_PACKAGING_SID_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "XML_Typedefs.h"
+#include "Utils/Functors.h"
+#include "IDREF_Base.h"
+#include "Package_Handlers/Packaging_Handlers_Export.h"
+
+namespace Deployment
+{
+ struct SubcomponentInstantiationDescription;
+ class SubcomponentInstantiationDescriptions;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class SubcomponentInstantiationDescription;
+
+ namespace Packaging
+ {
+ /**
+ * @class SID_Handler
+ * @brief Handler class for SubcomponentInstantiationDescription
+ */
+ class Packaging_Handlers_Export SID_Handler
+ {
+ SID_Handler (XML_Helper *xml_helper)
+ : xml_helper_ (xml_helper)
+ {
+
+ }
+
+ public:
+ static void handle_sub_comp_inst_descr (const SubcomponentInstantiationDescription &desc,
+ ::Deployment::SubcomponentInstantiationDescription &toconfig);
+
+ static SubcomponentInstantiationDescription
+ sub_comp_inst_descr (const ::Deployment::SubcomponentInstantiationDescription &src);
+
+ static IDREF_Base< CORBA::ULong > IDREF;
+
+ private:
+ static SubcomponentInstantiationDescription *resolve_sid (const char *uri);
+
+ XML_Helper *xml_helper_;
+
+ };
+
+ typedef Sequence_Handler < SubcomponentInstantiationDescription,
+ ::Deployment::SubcomponentInstantiationDescriptions,
+ ::Deployment::SubcomponentInstantiationDescription,
+ SID_Handler::handle_sub_comp_inst_descr > SID_Functor;
+
+ }
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_PACKAGING_SID_HANDLER_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Property_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Property_Handler.cpp
new file mode 100644
index 00000000000..ab4289637e1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Property_Handler.cpp
@@ -0,0 +1,56 @@
+//$Id$
+
+#include "Property_Handler.h"
+#include "Any_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ Property_Handler::Property_Handler (void)
+ {
+ }
+
+ Property_Handler::~Property_Handler (void)
+ {
+ }
+
+ void
+ Property_Handler::handle_property (const Property& desc,
+ Deployment::Property& toconfig)
+ {
+ DANCE_TRACE("Property_Handler::get_property");
+
+ try
+ {
+ toconfig.name =
+ CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ()));
+
+ Any_Handler::extract_into_any (desc.value (),
+ toconfig.value);
+ }
+ catch (Config_Error &ex)
+ {
+ ex.name_ = desc.name ();
+ throw ex;
+ }
+ }
+
+ Property
+ Property_Handler::get_property (const Deployment::Property& src)
+ {
+ DANCE_TRACE("Property_Handler::get_property - reverse");
+
+ ::XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR(src.name));
+ Any value (Any_Handler::get_any (src.value));
+
+ Property prop (name,value);
+
+ return prop;
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Property_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Property_Handler.h
new file mode 100644
index 00000000000..422aa1d4a44
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Property_Handler.h
@@ -0,0 +1,70 @@
+//================================================
+/**
+ * @file Property_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_PROPERTY_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_PROPERTY_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Common_Export.h"
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct Property;
+ class Properties;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Property;
+
+ /*
+ * @class Property_Handler
+ *
+ * @brief Handler class for <CCMComponentPortDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+
+ class Config_Handlers_Common_Export Property_Handler
+ {
+ public:
+ Property_Handler (void);
+ virtual ~Property_Handler (void);
+
+ /// This method maps the values from the XSC object
+ /// <CIAO::Config_Handlers::Property> to the CORBA IDL type
+ /// <Deployment::Property>.
+ static void handle_property (const Property& desc,
+ ::Deployment::Property& toconfig);
+ static Property get_property (const ::Deployment::Property& src);
+ };
+
+
+ typedef Sequence_Handler < Property,
+ ::Deployment::Properties,
+ ::Deployment::Property,
+ Property_Handler::handle_property > Property_Functor;
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_PROPERTY_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.cpp
new file mode 100644
index 00000000000..dd386b5efb8
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.cpp
@@ -0,0 +1,55 @@
+// $Id$
+
+#include "RDD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "Any_Handler.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Property_Handler.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ RDD_Handler::resource_deployment_descr (
+ const ResourceDeploymentDescription &src,
+ ::Deployment::ResourceDeploymentDescription &dest)
+ {
+ DANCE_TRACE("RDD_Handler::resource_deployment_descr");
+
+ dest.requirementName = src.requirementName ().c_str ();
+
+ dest.resourceName= src.resourceName ().c_str ();
+
+ std::for_each (src.begin_property (),
+ src.end_property (),
+ Property_Functor (dest.property));
+
+ }
+
+ ResourceDeploymentDescription
+ RDD_Handler::resource_deployment_descr (
+ const ::Deployment::ResourceDeploymentDescription &src)
+ {
+ DANCE_TRACE("RDD_Handler::resource_deployment_descr - reverse");
+
+ XMLSchema::string< ACE_TCHAR > reqname (ACE_TEXT_CHAR_TO_TCHAR (src.requirementName));
+ XMLSchema::string< ACE_TCHAR > resname (ACE_TEXT_CHAR_TO_TCHAR (src.resourceName.in ()));
+
+ ResourceDeploymentDescription rdd (reqname,resname);
+
+ for (CORBA::ULong i = 0;
+ i != src.property.length ();
+ ++i)
+ {
+ //rdd.add_property (Property_Handler::get_property (src.property[i]));
+ }
+
+ return rdd;
+ }
+
+
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.h
new file mode 100644
index 00000000000..e0d19c58ee2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/RDD_Handler.h
@@ -0,0 +1,63 @@
+
+//==============================================================
+/**
+* @file RDD_Handler.h
+*
+* $Id$
+*
+* @author Jules White <jules@dre.vanderbilt.edu>
+*/
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_RDD_Handler_H
+#define CIAO_CONFIG_HANDLERS_RDD_Handler_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+
+namespace Deployment
+{
+struct ResourceDeploymentDescription;
+}
+
+
+namespace CIAO
+{
+
+namespace Config_Handlers
+{
+class ResourceDeploymentDescription;
+
+/*
+* @class RDD_Handler
+*
+* @brief Handler class for <ResourceDeploymentDescription> types.
+*
+* This class defines handler methods to map values from XSC
+* ResourceDeploymentDescription objects, parsed from the
+* descriptor files, to the corresponding CORBA IDL Any type.
+*
+*/
+
+class Config_Handlers_Export RDD_Handler
+{
+public:
+static void resource_deployment_descr (
+const ResourceDeploymentDescription& desc,
+::Deployment::ResourceDeploymentDescription& toconfig);
+static ResourceDeploymentDescription
+resource_deployment_descr (
+const ::Deployment::ResourceDeploymentDescription &src);
+
+};
+}
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_RDD_Handler_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Req_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/Req_Handler.cpp
new file mode 100644
index 00000000000..4a40afc1647
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Req_Handler.cpp
@@ -0,0 +1,57 @@
+// $Id$
+
+#include "Req_Handler.h"
+#include "Property_Handler.h"
+#include "DAnCE/Deployment/Deployment_BaseC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ Req_Handler::Req_Handler (void)
+ {
+ }
+
+ Req_Handler::~Req_Handler (void)
+ {
+ }
+
+ void
+ Req_Handler::handle_requirement (const Requirement& desc,
+ Deployment::Requirement& toconfig)
+ {
+ DANCE_TRACE("Req_Handler::get_Requirement");
+
+ //Map the basic string types to their Deployment::Req
+ //counterparts.
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR ( desc.name ().c_str ());
+ toconfig.resourceType = ACE_TEXT_ALWAYS_CHAR ( desc.resourceType ().c_str ());
+
+ toconfig.property.length (desc.count_property ());
+ std::for_each (desc.begin_property (),
+ desc.end_property (),
+ Property_Functor (toconfig.property));
+ }
+
+ Requirement
+ Req_Handler::get_requirement (const Deployment::Requirement& src)
+ {
+ DANCE_TRACE("Req_Handler::get_requirement - reverse");
+
+ //Get the values for name and res
+ XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR (src.name));
+ XMLSchema::string< ACE_TCHAR > res (ACE_TEXT_CHAR_TO_TCHAR (src.resourceType));
+
+ //Instantiate the Requirement
+ Requirement req (name,res);
+
+ for (CORBA::ULong i = 0; i < src.property.length (); ++i)
+ {
+ //req.add_property (Property_Handler::get_property (src.property[i]));
+ }
+
+ return req;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Req_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/Req_Handler.h
new file mode 100644
index 00000000000..3955b85a55f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Req_Handler.h
@@ -0,0 +1,71 @@
+//==============================================================
+/**
+ * @file Req_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_REQ_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_REQ_HANDLER_H
+#include /**/ "ace/pre.h"
+
+#include "Basic_Deployment_Data.hpp"
+#include "Config_Handlers_Common_Export.h"
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct Requirement;
+ class Requirements;
+}
+
+namespace CIAO
+{
+
+ namespace Config_Handlers
+ {
+ /*
+ * @class REQ_Handler
+ *
+ * @brief Handler class for <Requirement> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC Requirement objects, parsed from
+ * the descriptor files, to the corresponding CORBA IDL type.
+ *
+ */
+
+ class Config_Handlers_Common_Export Req_Handler
+ {
+ public:
+
+ Req_Handler (void);
+ virtual ~Req_Handler (void);
+
+ ///This method takes a <Deployment::Requirement>
+ ///and maps the values from the passed in XSC
+ ///Requirement to its members.
+ static void handle_requirement (const Requirement& desc,
+ Deployment::Requirement& toconfig);
+ static Requirement
+ get_requirement (const Deployment::Requirement& src);
+ };
+
+ typedef Sequence_Handler < Requirement,
+ ::Deployment::Requirements,
+ ::Deployment::Requirement,
+ Req_Handler::handle_requirement > Requirement_Functor;
+
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_REQ_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.cpp
new file mode 100644
index 00000000000..d0bd4e92904
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.cpp
@@ -0,0 +1,173 @@
+// $Id$
+#include "STD_CID_Handler.h"
+#include "STD_CPD_Handler.h"
+#include "STD_IAD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "Utils/XML_Helper.h"
+#include "Deployment.hpp"
+#include "Property_Handler.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ IDREF_Base<CORBA::ULong> STD_CID_Handler::IDREF;
+
+ bool
+ STD_CID_Handler::component_impl_descr (
+ const ComponentImplementationDescription &desc,
+ ::Deployment::ComponentImplementationDescription &toconfig)
+ {
+ toconfig.label =
+ desc.label ().c_str ();
+
+ toconfig.UUID =
+ desc.UUID ().c_str ();
+
+
+ if (desc.assemblyImpl_p ())
+ {
+ Deployment::ComponentAssemblyDescription idl_cad;
+ ComponentAssemblyDescription cad =
+ desc.assemblyImpl ();
+
+ // @@: handle <assemblyImpl>
+ for (ComponentAssemblyDescription::instance_const_iterator iter =
+ cad.begin_instance ();
+ iter != cad.end_instance ();
+ iter++)
+ {
+ CORBA::ULong len =
+ idl_cad.instance.length ();
+ idl_cad.instance.length (len + 1);
+ idl_cad.instance [len].name =
+ (*iter).name ().c_str ();
+
+ // Bind the instance id with the index
+ if ((*iter).id_p ())
+ {
+ ACE_CString cstr ((*iter).id ().c_str ());
+
+ STD_CID_Handler::IDREF.bind_ref (cstr,len);
+ }
+
+ if (!this->xml_helper_->is_initialized ())
+ return false;
+
+ // parse the .cpd (ComponentPackageDescription) file
+ // that <package> links to
+ xercesc::DOMDocument* dom =
+ this->xml_helper_->create_dom (((*iter).package ()).href ().c_str ());
+
+ if (!dom)
+ return false;
+
+ ComponentPackageDescription cpd =
+ componentPackageDescription (dom);
+
+ Deployment::ComponentPackageDescription idl_cpd;
+
+ STD_CPD_Handler cpd_handler (this->xml_helper_);
+
+ cpd_handler.component_package_descr (cpd,
+ idl_cpd);
+
+ idl_cad.instance [len].package.length (1);
+ idl_cad.instance [len].package [0] = idl_cpd;
+ }
+
+ // @@: handle <connection>
+ for (ComponentAssemblyDescription::connection_const_iterator conn_iter =
+ cad.begin_connection ();
+ conn_iter != cad.end_connection ();
+ conn_iter++)
+ {
+ CORBA::ULong conn_len =
+ idl_cad.connection.length ();
+
+ idl_cad.connection.length (conn_len + 1);
+ idl_cad.connection [conn_len].name =
+ (*conn_iter).name ().c_str ();
+
+
+ for (AssemblyConnectionDescription::internalEndpoint_const_iterator ep_iter =
+ (*conn_iter).begin_internalEndpoint ();
+ ep_iter != (*conn_iter).end_internalEndpoint ();
+ ep_iter++)
+ {
+ CORBA::ULong endp_len =
+ idl_cad.connection [conn_len].internalEndpoint.length ();
+ idl_cad.connection [conn_len].internalEndpoint.length (endp_len + 1);
+ idl_cad.connection [conn_len].internalEndpoint [endp_len].portName =
+ (*ep_iter).portName ().c_str ();
+
+ CORBA::ULong tmp = 0;
+ STD_CID_Handler::IDREF.find_ref (ACE_CString ((((*ep_iter).instance ()).id ()).c_str ()),
+ tmp);
+ CORBA::ULong ref = tmp;
+ idl_cad.connection[conn_len].internalEndpoint [endp_len].instanceRef = ref;
+ }
+ }
+
+ toconfig.assemblyImpl.length (1);
+ toconfig.assemblyImpl [0] = idl_cad;
+ }
+
+ // handle <monolithicImpl>
+ if (desc.monolithicImpl_p ())
+ {
+ Deployment::MonolithicImplementationDescription idl_mid;
+ MonolithicImplementationDescription mid =
+ desc.monolithicImpl ();
+
+ for (MonolithicImplementationDescription::primaryArtifact_const_iterator iter =
+ mid.begin_primaryArtifact ();
+ iter != mid.end_primaryArtifact ();
+ iter++)
+ {
+ CORBA::ULong len =
+ idl_mid.primaryArtifact.length ();
+ idl_mid.primaryArtifact.length (len + 1);
+ idl_mid.primaryArtifact [len].name = (*iter).name ().c_str ();
+
+ if (!this->xml_helper_->is_initialized ())
+ return false;
+
+ // parse the .iad (ImplementationArtifactDescription) file
+ // that the <referencedArtifact> links to
+ xercesc::DOMDocument* dom =
+ this->xml_helper_->create_dom (((*iter).referencedArtifact ()).href ().c_str ()); // here location indicates .iad file
+
+ if (!dom)
+ return false;
+
+ ImplementationArtifactDescription iad =
+ implementationArtifactDescription (dom);
+
+ Deployment::ImplementationArtifactDescription idl_iad;
+
+ STD_IAD_Handler::impl_artifact_descr (iad,
+ idl_iad);
+
+ idl_mid.primaryArtifact [len].referencedArtifact = idl_iad;
+
+ }
+ toconfig.monolithicImpl.length (1);
+ toconfig.monolithicImpl [0] = idl_mid;
+ }
+
+ // handle <configProperty>
+ if (desc.configProperty_p ())
+ {
+ Property p = desc.configProperty ();
+ Deployment::Property idl_p;
+ Property_Handler::get_property (p, idl_p);
+ toconfig.configProperty.length (1);
+ toconfig.configProperty [0] = idl_p;
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.h
new file mode 100644
index 00000000000..c875d05edba
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_CID_Handler.h
@@ -0,0 +1,75 @@
+//================================================
+/**
+ * @file STD_CID_Handler.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_STD_CID_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_STD_CID_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "IDREF_Base.h"
+#include "Config_Handlers_Export.h"
+#include "DAnCE/Deployment/DeploymentC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentImplementationDescription;
+
+ /*
+ * @class STD_CID_Handler
+ *
+ * @brief Handler class for <CCMComponentImplementationDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Config_Handlers_Export STD_CID_Handler
+ {
+
+ public:
+
+ STD_CID_Handler (void)
+ {
+ }
+
+ /// Maps the values from the XSC object
+ /// <ComponentImplementationDescription> to the CORBA IDL type
+ /// <Deployment::ComponentImplementationDescription>.
+ bool component_impl_descr (
+ const ComponentImplementationDescription &desc,
+ ::Deployment::ComponentImplementationDescription &toconfig);
+
+ static IDREF_Base<CORBA::ULong> IDREF;
+
+//@@Note: This part has yet to be added in the future
+// ComponentImplementationDescription
+// component_port_description (
+// const Deployment::ComponentImplementationDescription& src);
+
+ private:
+ // disable the default constructor
+ STD_CID_Handler ()
+ :xml_helper_ (0)
+ {
+ }
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_STD_CID_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.cpp
new file mode 100644
index 00000000000..c9fa40f0258
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.cpp
@@ -0,0 +1,59 @@
+// $Id$
+#include "STD_CPD_Handler.h"
+#include "STD_CID_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "Deployment.hpp"
+#include "Utils/XML_Typedefs.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ bool
+ STD_CPD_Handler::component_package_descr (
+ const ComponentPackageDescription &desc,
+ ::Deployment::ComponentPackageDescription &toconfig)
+ {
+ toconfig.label =
+ desc.label ().c_str ();
+
+ toconfig.UUID =
+ desc.UUID ().c_str ();
+
+ PackagedComponentImplementation pci = desc.implementation ();
+ Deployment::PackagedComponentImplementation idl_pci;
+ idl_pci.name =
+ pci.name ().c_str ();
+
+ if (XML_Helper::XML_HELPER.is_initialized ())
+ return false;
+
+ // parse the .cid (ComponentImplementationDescription) file
+ // that <referencedImplementation> links to
+ xercesc::DOMDocument* dom =
+ XML_Helper::XML_HELPER.create_dom
+ ((pci.referencedImplementation ()).href ().c_str ()); // here location indicates .pcd file
+
+ if (!dom)
+ return false;
+
+ ComponentImplementationDescription cid =
+ componentImplementationDescription (dom);
+
+ Deployment::ComponentImplementationDescription idl_cid;
+
+ STD_CID_Handler cid_handler;
+
+ cid_handler.component_impl_descr (cid,
+ idl_cid);
+
+ idl_pci.referencedImplementation = idl_cid;
+
+ toconfig.implementation.length (1);
+ toconfig.implementation [0] = idl_pci;
+
+ return true;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.h
new file mode 100644
index 00000000000..654fb0155ca
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_CPD_Handler.h
@@ -0,0 +1,78 @@
+//================================================
+/**
+ * @file STD_CPD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_STD_CPD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_STD_CPD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Utils/XML_Helper.h"
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct ComponentPackageDescription;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentPackageDescription;
+
+ /*
+ * @class STD_CPD_Handler
+ *
+ * @brief Handler class for <CCMComponentPackageDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Config_Handlers_Export STD_CPD_Handler
+ {
+
+ public:
+
+ STD_CPD_Handler (XML_Helper *xml_helper)
+ :xml_helper_ (xml_helper)
+ {
+ }
+
+ /// Maps the values from the XSC object
+ /// <ComponentPackageDescription> to the CORBA IDL type
+ /// <Deployment::ComponentPackageDescription>.
+ bool component_package_descr(
+ const ComponentPackageDescription &desc,
+ ::Deployment::ComponentPackageDescription &toconfig);
+
+ //@@Note: This part has yet to be added in the future
+ // ComponentPortDescription
+ // component_package_descr (
+ // const Deployment::ComponentPortDescription& src);
+ private:
+ // disable the default constructor
+ STD_CPD_Handler ()
+ :xml_helper_ (0)
+ {
+ }
+
+ XML_Helper *xml_helper_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_CPD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp
new file mode 100644
index 00000000000..020396582d3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.cpp
@@ -0,0 +1,46 @@
+// $Id$
+#include "STD_IAD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "ciao/Packaging_DataC.h"
+#include "Property_Handler.h"
+
+#include "iad.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ bool
+ STD_IAD_Handler::impl_artifact_descr (
+ const ImplementationArtifactDescription &desc,
+ ::Deployment::ImplementationArtifactDescription &toconfig)
+ {
+ toconfig.label =
+ desc.label ().c_str ();
+
+ toconfig.UUID =
+ desc.UUID ().c_str ();
+
+ for (ImplementationArtifactDescription::location_const_iterator iter =
+ desc.begin_location ();
+ iter != desc.end_location ();
+ iter++)
+ {
+ CORBA::ULong len =
+ toconfig.location.length ();
+ toconfig.location.length (len + 1);
+ toconfig.location [len] = (*iter).c_str ();
+ }
+
+ if (desc.execParameter_p ())
+ {
+ Property p = desc.execParameter ();
+ Deployment::Property idl_p;
+ Property_Handler::get_property (p, idl_p);
+ toconfig.execParameter.length (1);
+ toconfig.execParameter [0] = idl_p;
+ }
+ return true;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.h
new file mode 100644
index 00000000000..3523526f5be
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_IAD_Handler.h
@@ -0,0 +1,64 @@
+//================================================
+/**
+ * @file STD_IAD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct ImplementationArtifactDescription;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ImplementationArtifactDescription;
+
+ /*
+ * @class STD_IAD_Handler
+ *
+ * @brief Handler class for <CCMImplementationArtifactDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Config_Handlers_Export STD_IAD_Handler
+ {
+
+ public:
+ /// Maps the values from the XSC object
+ /// <ImplementationArtifactDescription> to the CORBA IDL type
+ /// <Deployment::ImplementationArtifactDescription>.
+ static bool
+ impl_artifact_descr (
+ const ImplementationArtifactDescription &desc,
+ ::Deployment::ImplementationArtifactDescription &toconfig);
+
+//@@Note: The reverse part has yet to be handed in the future
+// ImplementationArtifactDescription
+// impl_artifact_descr (
+// const Deployment::ComponentPortDescription& src);
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_STD_IAD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.cpp
new file mode 100644
index 00000000000..5a65826f340
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.cpp
@@ -0,0 +1,52 @@
+// $Id$
+#include "STD_PCD_Handler.h"
+#include "STD_CPD_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "ciao/Packaging_DataC.h"
+#include "Deployment.hpp"
+
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ bool
+ STD_PCD_Handler::package_config (
+ const PackageConfiguration &desc,
+ ::Deployment::PackageConfiguration &toconfig)
+ {
+ toconfig.label =
+ desc.label ().c_str ();
+
+ toconfig.UUID =
+ desc.UUID ().c_str ();
+
+ if (!XML_Helper::XML_HELPER.is_initialized ())
+ return false;
+
+ // parse the .cpd (ComponentPackageDescription) file
+ // that <basePackage> links to
+ xercesc::DOMDocument* dom =
+ XML_Helper::XML_HELPER.create_dom ((desc.basePackage()).href ().c_str ());
+
+ if (!dom)
+ return false;
+
+ ComponentPackageDescription cpc =
+ componentPackageDescription (dom);
+
+ Deployment::ComponentPackageDescription idl_cpc;
+
+ STD_CPD_Handler cpd_handler;
+
+ cpd_handler.component_package_descr (cpc,
+ idl_cpc);
+
+ toconfig.basePackage.length (1);
+ toconfig.basePackage [0] = idl_cpc;
+
+ return true;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.h
new file mode 100644
index 00000000000..8c65f6eb6f3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_PCD_Handler.h
@@ -0,0 +1,74 @@
+//================================================
+/**
+ * @file STD_PCD_Handler.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_STD_PCD_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_STD_PCD_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct PackageConfiguration;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class PackageConfiguration;
+
+ /*
+ * @class STD_PCD_Handler
+ *
+ * @brief Handler class for <CCMPackageConfiguration> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+ class Config_Handlers_Export STD_PCD_Handler
+ {
+
+ public:
+ STD_PCD_Handler ()
+ {
+ }
+
+ /// Maps the values from the XSC object
+ /// <PackageConfiguration> to the CORBA IDL type
+ /// <Deployment::PackageConfiguration>.
+ bool package_config (
+ const PackageConfiguration &desc,
+ ::Deployment::PackageConfiguration &toconfig);
+
+//@@Note: This part has yet to be added in the future
+// PackageConfiguration
+// package_config (
+// const Deployment::ComponentPortDescription& src);
+
+ private:
+ // Disable the default constructor
+ STD_PCD_Handler ()
+ {
+ }
+
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_STD_PCD_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.cpp b/modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.cpp
new file mode 100644
index 00000000000..01fa67f23ad
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.cpp
@@ -0,0 +1,71 @@
+// $Id$
+
+#include "STD_PC_Intf.h"
+#include "Utils/XML_Typedefs.h"
+#include "Deployment.hpp"
+#include "STD_PCD_Handler.h"
+#include "ciao/Packaging_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ STD_PC_Intf::STD_PC_Intf (const char *file)
+ {
+ if (!this->prepare_PC (file))
+ throw;
+ }
+
+ bool
+ STD_PC_Intf::prepare_PC (const char *file)
+ {
+ DANCE_TRACE("STD_PC_Intf::prepare_PC");
+
+
+ // parse the .pcd (PackageConfigurationDescription) file
+ xercesc::DOMDocument *dom =
+ XML_Helper::XML_HELPER.create_dom (file);
+
+ if (!dom)
+ return false;
+
+
+ PackageConfiguration pc =
+ packageConfiguration (dom);
+
+
+ Deployment::PackageConfiguration idl_pc;
+
+
+ STD_PCD_Handler pcd_handler;
+
+ pcd_handler.package_config (pc,
+ idl_pc);
+
+
+ Deployment::PackageConfiguration *p_idl_pc =
+ new Deployment::PackageConfiguration (idl_pc);
+
+ // let ACE_Auto_Ptr take over
+ this->idl_pc_.reset (p_idl_pc);
+
+ if (this->idl_pc_.get ())
+ return true;
+
+ return false;
+ }
+
+ ::Deployment::PackageConfiguration const *
+ STD_PC_Intf::get_PC (void) const
+ {
+ return this->idl_pc_.get ();
+ }
+
+ ::Deployment::PackageConfiguration *
+ STD_PC_Intf::get_PC (void)
+ {
+ return this->idl_pc_.release ();
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.h b/modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.h
new file mode 100644
index 00000000000..2e07e1922eb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/STD_PC_Intf.h
@@ -0,0 +1,62 @@
+//==============================================================
+/**
+ * @file STD_PC_Intf.h
+ *
+ * $Id$
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_STD_PC_INTF_H
+#define CIAO_CONFIG_STD_PC_INTF_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Auto_Ptr.h"
+
+
+namespace Deployment
+{
+ struct PackageConfiguration ;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ /*
+ * @class STD_PC_Intf
+ *
+ * @brief Wrapper class for PackageConfiguration extraction
+ *
+ * This class defines wrapper functions for extracting
+ * PackageConfiguration IDL structures from XSC structures.
+ * It serves as the public interface used by application
+ * developers.
+ *
+ */
+ class Config_Handlers_Export STD_PC_Intf
+ {
+ public:
+ STD_PC_Intf (const char *file);
+
+ ::Deployment::PackageConfiguration const *get_PC (void) const;
+ ::Deployment::PackageConfiguration *get_PC (void);
+
+ protected:
+ bool prepare_PC (const char *file);
+
+ private:
+ ACE_Auto_Ptr< ::Deployment::PackageConfiguration> idl_pc_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_CONFIG_STD_PC_INTF_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.cpp b/modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.cpp
new file mode 100644
index 00000000000..a0951505138
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.cpp
@@ -0,0 +1,126 @@
+//$Id$
+
+#include "SatisfierProperty_Handler.h"
+#include "Any_Handler.h"
+#include "Basic_Deployment_Data.hpp"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Utils/Exceptions.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+
+ SatisfierProperty_Handler::SatisfierProperty_Handler (void)
+ {
+ }
+
+ SatisfierProperty_Handler::~SatisfierProperty_Handler (void)
+ {
+ }
+
+ void
+ SatisfierProperty_Handler::handle_sat_property (
+ const SatisfierProperty& desc,
+ Deployment::SatisfierProperty& toconfig)
+ {
+ DANCE_TRACE("SatisfierProperty_Handler::get_sat_property");
+
+ toconfig.name = ACE_TEXT_ALWAYS_CHAR (desc.name ().c_str ());
+
+ switch (desc.kind ().integral ())
+ {
+ case SatisfierPropertyKind::Quantity_l:
+ toconfig.kind = Deployment::Quantity;
+ break;
+
+ case SatisfierPropertyKind::Capacity_l:
+ toconfig.kind = Deployment::Capacity;
+ break;
+
+ case SatisfierPropertyKind::Minimum_l:
+ toconfig.kind = Deployment::Minimum;
+ break;
+
+ case SatisfierPropertyKind::Maximum_l:
+ toconfig.kind = Deployment::Maximum;
+ break;
+
+ // case SatisfierPropertyKind::Attribute_l:
+ //toconfig.kind = Deployment::_Attribute;
+ //break;
+
+ case SatisfierPropertyKind::Selection_l:
+ toconfig.kind = Deployment::Selection;
+ break;
+
+ default:
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unknown SatisfierPropertyKind\n")));
+ throw Config_Error (desc.name (), ACE_TEXT ("Unknown SatisfierPropertyKind"));
+
+ }
+
+ toconfig.dynamic = desc.dynamic ();
+
+ try
+ {
+ Any_Handler::extract_into_any (desc.value (),
+ toconfig.value);
+ }
+ catch (Config_Error &ex)
+ {
+ ex.name_ = desc.name ();
+ throw ex;
+ }
+ }
+
+ SatisfierProperty
+ SatisfierProperty_Handler::get_sat_property (
+ const Deployment::SatisfierProperty& src)
+ {
+ DANCE_TRACE("SatisfierProperty_Handler::get_sat_property - reverse");
+
+ ::XMLSchema::string< ACE_TCHAR > name (ACE_TEXT_CHAR_TO_TCHAR ((src.name)));
+ SatisfierPropertyKind::Value kind;
+
+ const SatisfierPropertyKind *spk = 0;
+
+ switch (src.kind)
+ {
+ case Deployment::Quantity:
+ spk = &SatisfierPropertyKind::Quantity;
+ break;
+
+ case Deployment::Capacity:
+ spk = &SatisfierPropertyKind::Capacity;
+ break;
+
+ case Deployment::Minimum:
+ spk = &SatisfierPropertyKind::Minimum;
+ break;
+
+ case Deployment::Maximum:
+ spk = &SatisfierPropertyKind::Maximum;
+ break;
+
+ // case Deployment::_Attribute:
+ //kind = SatisfierPropertyKind::Attribute_l;
+ //break;
+
+ case Deployment::Selection:
+ kind = SatisfierPropertyKind::Selection_l;
+ break;
+
+ default:
+ throw Plan_Error (ACE_TEXT ("Invalid SatisfierPropertyKind"));
+ }
+
+ bool dynamic = src.dynamic;
+
+ Any value (Any_Handler::get_any (src.value));
+
+ return SatisfierProperty (name, *spk, dynamic, value);
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.h b/modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.h
new file mode 100644
index 00000000000..e166b341d9f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/SatisfierProperty_Handler.h
@@ -0,0 +1,69 @@
+//================================================
+/**
+ * @file SatisfierProperty_Handler.h
+ *
+ * $Id$
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_SATIS_PROPERTY_HANDLER_H
+#define CIAO_CONFIG_HANDLERS_SATIS_PROPERTY_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Common_Export.h"
+#include "Utils/Functors.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace Deployment
+{
+ struct SatisfierProperty;
+ class SatisfierProperties;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class SatisfierProperty;
+
+ /*
+ * @class SatisfierProperty_Handler
+ *
+ * @brief Handler class for <CCMComponentPortDescription> types.
+ *
+ * This class defines handler methods to map values from
+ * XSC objects, parsed from the descriptor files, to the
+ * corresponding CORBA IDL type for the schema element.
+ *
+ */
+
+ class Config_Handlers_Common_Export SatisfierProperty_Handler
+ {
+ public:
+ SatisfierProperty_Handler (void);
+ virtual ~SatisfierProperty_Handler (void);
+
+ /// This method maps the values from the XSC object
+ /// <CIAO::Config_Handlers::SatisfierProperty> to the CORBA IDL type
+ /// <Deployment::SatisfierProperty>.
+ static void handle_sat_property (const SatisfierProperty& desc,
+ ::Deployment::SatisfierProperty& toconfig);
+ static SatisfierProperty get_sat_property (const ::Deployment::SatisfierProperty& src);
+ };
+
+ typedef Sequence_Handler < SatisfierProperty,
+ ::Deployment::SatisfierProperties,
+ ::Deployment::SatisfierProperty,
+ SatisfierProperty_Handler::handle_sat_property> SatisfierProperty_Functor;
+
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_HANDLERS_SATIS_PROPERTY_HANDLER_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Utils/Exceptions.h b/modules/CIAO/DAnCE/Config_Handlers/Utils/Exceptions.h
new file mode 100644
index 00000000000..63b3563c879
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Utils/Exceptions.h
@@ -0,0 +1,39 @@
+// $Id$
+/**
+ * @file Exceptions.h
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Defines exceptions that may be thrown during the XSC<=>IDL translation process.
+ */
+#include <string>
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ struct Parse_Error
+ {
+ Parse_Error (const std::basic_string<ACE_TCHAR> &reason)
+ : reason_ (reason)
+ {
+ }
+
+ std::basic_string<ACE_TCHAR> reason_;
+ };
+
+ struct Plan_Error
+ {
+ Plan_Error (const std::basic_string<ACE_TCHAR> &reason)
+ : reason_ (reason)
+ {
+ }
+
+ std::basic_string<ACE_TCHAR> reason_;
+ };
+
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/Utils/Functors.h b/modules/CIAO/DAnCE/Config_Handlers/Utils/Functors.h
new file mode 100644
index 00000000000..c07a377aa41
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/Utils/Functors.h
@@ -0,0 +1,87 @@
+#ifndef CONFIG_HANDLERS_FUNCTORS_H
+#define CONFIG_HANDLERS_FUNCTORS_H
+
+/**
+ * @file Functors.h
+ * @author William Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Functors useful in the config handlers
+ */
+#include <iterator>
+
+#include "tao/Basic_Types.h" // For CORBA::ULong
+#include "tao/StringSeqC.h"
+
+#include "XMLSchema/Types.hpp"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ template <typename Source,
+ typename Dest,
+ typename Dest_Type,
+#if defined (__BORLANDC__) && (__BORLANDC__ < 0x630)
+ void (Func)(const Source &, Dest_Type &)>
+#else
+ void (&Func)(const Source &, Dest_Type &)>
+#endif
+ struct Sequence_Handler
+ {
+ Sequence_Handler (Dest &dest, CORBA::ULong pos = 0)
+ : dest_ (dest),
+ pos_ (pos)
+ {
+ }
+
+ void operator() (const ACE_Refcounted_Auto_Ptr <Source, ACE_Null_Mutex> &src)
+ {
+ Func (*src, dest_[pos_++]);
+ }
+
+ private:
+ Dest &dest_;
+ CORBA::ULong pos_;
+ };
+
+ /*
+ * This is a workaround for a GCC bug that for some reason causes
+ * functions that appear ONLY in a Sequence_Handler typedef to not
+ * be present in the compiled object file.
+ * This bug was first observed in GCC 4.02.
+ *
+ * W: The function we want to be defined
+ * X: First argument to the function
+ * Y: Second argument to the function
+ */
+#define SEQ_HAND_GCC_BUG_WORKAROUND(W, X, Y) \
+ while(0) { \
+ W (*X, Y[0]); \
+ }
+
+
+ template <typename Dest, typename Dest_Type>
+ struct String_Seq_Handler
+ {
+ String_Seq_Handler (Dest &dest, CORBA::ULong pos = 0)
+ : dest_ (dest),
+ pos_ (pos)
+ {
+ }
+
+ void operator() (const ACE_Refcounted_Auto_Ptr < ::XMLSchema::string<ACE_TCHAR>, ACE_Null_Mutex> &src)
+ {
+ dest_[pos_++] = ACE_TEXT_ALWAYS_CHAR (src->c_str ());
+ }
+
+ private:
+ Dest &dest_;
+ CORBA::ULong pos_;
+ };
+
+ typedef String_Seq_Handler < ::CORBA::StringSeq,
+ ::CORBA::String_var > String_Seq_Functor;
+
+ }
+}
+
+#endif /* CONFIG_HANDLERS_FUNCTORS_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMI.cpp b/modules/CIAO/DAnCE/Config_Handlers/XMI.cpp
new file mode 100644
index 00000000000..66c0ee02f0e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMI.cpp
@@ -0,0 +1,888 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "XMI.hpp"
+
+namespace XMI
+{
+ // Extension
+ //
+
+ Extension::
+ Extension ()
+ :
+ regulator__ ()
+ {
+ }
+
+ Extension::
+ Extension (Extension const& s)
+ : XSCRT::Type (),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ uuid_ (s.uuid_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.uuid_) : 0),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ idref_ (s.idref_.get () ? new ::XMLSchema::IDREF< ACE_TCHAR > (*s.idref_) : 0),
+ version_ (s.version_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.version_) : 0),
+ extender_ (s.extender_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.extender_) : 0),
+ extenderID_ (s.extenderID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.extenderID_) : 0),
+ regulator__ ()
+ {
+ if (id_.get ()) id_->container (this);
+ if (label_.get ()) label_->container (this);
+ if (uuid_.get ()) uuid_->container (this);
+ if (href_.get ()) href_->container (this);
+ if (idref_.get ()) idref_->container (this);
+ if (version_.get ()) version_->container (this);
+ if (extender_.get ()) extender_->container (this);
+ if (extenderID_.get ()) extenderID_->container (this);
+ }
+
+ Extension& Extension::
+ operator= (Extension const& s)
+ {
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+
+ if (s.label_.get ()) label (*(s.label_));
+ else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ if (s.uuid_.get ()) uuid (*(s.uuid_));
+ else uuid_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ if (s.idref_.get ()) idref (*(s.idref_));
+ else idref_ = ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > (0);
+
+ if (s.version_.get ()) version (*(s.version_));
+ else version_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ if (s.extender_.get ()) extender (*(s.extender_));
+ else extender_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ if (s.extenderID_.get ()) extenderID (*(s.extenderID_));
+ else extenderID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // Extension
+ //
+ bool Extension::
+ id_p () const
+ {
+ return id_.get () != 0;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR > const& Extension::
+ id () const
+ {
+ return *id_;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR >& Extension::
+ id ()
+ {
+ return *id_;
+ }
+
+ void Extension::
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ {
+ if (id_.get ())
+ {
+ *id_ = e;
+ }
+
+ else
+ {
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Extension::
+ label () const
+ {
+ return *label_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& Extension::
+ label ()
+ {
+ return *label_;
+ }
+
+ void Extension::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ uuid_p () const
+ {
+ return uuid_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Extension::
+ uuid () const
+ {
+ return *uuid_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& Extension::
+ uuid ()
+ {
+ return *uuid_;
+ }
+
+ void Extension::
+ uuid (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (uuid_.get ())
+ {
+ *uuid_ = e;
+ }
+
+ else
+ {
+ uuid_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ uuid_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Extension::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& Extension::
+ href ()
+ {
+ return *href_;
+ }
+
+ void Extension::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ idref_p () const
+ {
+ return idref_.get () != 0;
+ }
+
+ ::XMLSchema::IDREF< ACE_TCHAR > const& Extension::
+ idref () const
+ {
+ return *idref_;
+ }
+
+ ::XMLSchema::IDREF< ACE_TCHAR >& Extension::
+ idref ()
+ {
+ return *idref_;
+ }
+
+ ::XSCRT::Type* Extension::
+ idref_ptr ()
+ {
+ std::basic_string<ACE_TCHAR> temp (idref().id());
+ return this->get_idref(temp.c_str());
+ }
+
+
+ void Extension::
+ idref (::XMLSchema::IDREF< ACE_TCHAR > const& e)
+ {
+ if (idref_.get ())
+ {
+ *idref_ = e;
+ }
+
+ else
+ {
+ idref_ = ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > (new ::XMLSchema::IDREF< ACE_TCHAR > (e));
+ idref_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ version_p () const
+ {
+ return version_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Extension::
+ version () const
+ {
+ return *version_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& Extension::
+ version ()
+ {
+ return *version_;
+ }
+
+ void Extension::
+ version (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (version_.get ())
+ {
+ *version_ = e;
+ }
+
+ else
+ {
+ version_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ version_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ extender_p () const
+ {
+ return extender_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Extension::
+ extender () const
+ {
+ return *extender_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& Extension::
+ extender ()
+ {
+ return *extender_;
+ }
+
+ void Extension::
+ extender (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (extender_.get ())
+ {
+ *extender_ = e;
+ }
+
+ else
+ {
+ extender_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ extender_->container (this);
+ }
+ }
+
+ // Extension
+ //
+ bool Extension::
+ extenderID_p () const
+ {
+ return extenderID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Extension::
+ extenderID () const
+ {
+ return *extenderID_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& Extension::
+ extenderID ()
+ {
+ return *extenderID_;
+ }
+
+ void Extension::
+ extenderID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (extenderID_.get ())
+ {
+ *extenderID_ = e;
+ }
+
+ else
+ {
+ extenderID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ extenderID_->container (this);
+ }
+ }
+}
+
+namespace XMI
+{
+ // Extension
+ //
+
+ Extension::
+ Extension (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("id"))
+ {
+ ::XMLSchema::ID< ACE_TCHAR > t (a);
+ id (t);
+ std::basic_string<ACE_TCHAR> temp ((*id_).c_str());
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_id(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else if (n == ACE_TEXT ("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT ("uuid"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ uuid (t);
+ }
+
+ else if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else if (n == ACE_TEXT ("idref"))
+ {
+ ::XMLSchema::IDREF< ACE_TCHAR > t (a);
+ idref (t);
+ std::basic_string<ACE_TCHAR> temp ((*idref_).id().c_str());
+
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_idref(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else if (n == ACE_TEXT ("version"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ version (t);
+ }
+
+ else if (n == ACE_TEXT ("extender"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ extender (t);
+ }
+
+ else if (n == ACE_TEXT ("extenderID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ extenderID (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+}
+
+namespace XMI
+{
+ namespace reader
+ {
+ ::XMI::Extension
+ extension (xercesc::DOMDocument const* d)
+ {
+ //Initiate our Singleton as an ACE_TSS object (ensures thread
+ //specific storage
+ ID_Map::TSS_ID_Map* TSS_ID_Map (ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance());
+
+
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == ACE_TEXT("extension"))
+ {
+ ::XMI::Extension r (e);
+
+ (*TSS_ID_Map)->resolve_idref();
+
+ return r;
+ }
+
+ else
+ {
+ throw 1;
+ }
+ }
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace XMI
+{
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct ExtensionTypeInfoInitializer
+ {
+ ExtensionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::XMI::Extension));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ExtensionTypeInfoInitializer ExtensionTypeInfoInitializer_;
+ }
+}
+
+namespace XMI
+{
+ namespace Traversal
+ {
+ // Extension
+ //
+ //
+
+ void Extension::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.uuid_p ()) uuid (o);
+ else uuid_none (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ if (o.idref_p ()) idref (o);
+ else idref_none (o);
+ if (o.version_p ()) version (o);
+ else version_none (o);
+ if (o.extender_p ()) extender (o);
+ else extender_none (o);
+ if (o.extenderID_p ()) extenderID (o);
+ else extenderID_none (o);
+ post (o);
+ }
+
+ void Extension::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.uuid_p ()) uuid (o);
+ else uuid_none (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ if (o.idref_p ()) idref (o);
+ else idref_none (o);
+ if (o.version_p ()) version (o);
+ else version_none (o);
+ if (o.extender_p ()) extender (o);
+ else extender_none (o);
+ if (o.extenderID_p ()) extenderID (o);
+ else extenderID_none (o);
+ post (o);
+ }
+
+ void Extension::
+ pre (Type&)
+ {
+ }
+
+ void Extension::
+ pre (Type const&)
+ {
+ }
+
+ void Extension::
+ id (Type& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void Extension::
+ id (Type const& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void Extension::
+ id_none (Type&)
+ {
+ }
+
+ void Extension::
+ id_none (Type const&)
+ {
+ }
+
+ void Extension::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Extension::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Extension::
+ label_none (Type&)
+ {
+ }
+
+ void Extension::
+ label_none (Type const&)
+ {
+ }
+
+ void Extension::
+ uuid (Type& o)
+ {
+ dispatch (o.uuid ());
+ }
+
+ void Extension::
+ uuid (Type const& o)
+ {
+ dispatch (o.uuid ());
+ }
+
+ void Extension::
+ uuid_none (Type&)
+ {
+ }
+
+ void Extension::
+ uuid_none (Type const&)
+ {
+ }
+
+ void Extension::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void Extension::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void Extension::
+ href_none (Type&)
+ {
+ }
+
+ void Extension::
+ href_none (Type const&)
+ {
+ }
+
+ void Extension::
+ idref (Type& o)
+ {
+ dispatch (o.idref ());
+ }
+
+ void Extension::
+ idref (Type const& o)
+ {
+ dispatch (o.idref ());
+ }
+
+ void Extension::
+ idref_none (Type&)
+ {
+ }
+
+ void Extension::
+ idref_none (Type const&)
+ {
+ }
+
+ void Extension::
+ version (Type& o)
+ {
+ dispatch (o.version ());
+ }
+
+ void Extension::
+ version (Type const& o)
+ {
+ dispatch (o.version ());
+ }
+
+ void Extension::
+ version_none (Type&)
+ {
+ }
+
+ void Extension::
+ version_none (Type const&)
+ {
+ }
+
+ void Extension::
+ extender (Type& o)
+ {
+ dispatch (o.extender ());
+ }
+
+ void Extension::
+ extender (Type const& o)
+ {
+ dispatch (o.extender ());
+ }
+
+ void Extension::
+ extender_none (Type&)
+ {
+ }
+
+ void Extension::
+ extender_none (Type const&)
+ {
+ }
+
+ void Extension::
+ extenderID (Type& o)
+ {
+ dispatch (o.extenderID ());
+ }
+
+ void Extension::
+ extenderID (Type const& o)
+ {
+ dispatch (o.extenderID ());
+ }
+
+ void Extension::
+ extenderID_none (Type&)
+ {
+ }
+
+ void Extension::
+ extenderID_none (Type const&)
+ {
+ }
+
+ void Extension::
+ post (Type&)
+ {
+ }
+
+ void Extension::
+ post (Type const&)
+ {
+ }
+ }
+}
+
+namespace XMI
+{
+ namespace Writer
+ {
+ // Extension
+ //
+ //
+
+ Extension::
+ Extension (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Extension::
+ Extension ()
+ {
+ }
+
+ void Extension::
+ traverse (Type const& o)
+ {
+ Traversal::Extension::traverse (o);
+ }
+
+ void Extension::
+ id (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("id"), ACE_TEXT ("http://www.omg.org/XMI"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::id (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ label (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("label"), ACE_TEXT ("http://www.omg.org/XMI"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::label (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ uuid (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("uuid"), ACE_TEXT ("http://www.omg.org/XMI"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::uuid (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::href (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ idref (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("idref"), ACE_TEXT ("http://www.omg.org/XMI"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::idref (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ version (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("version"), ACE_TEXT ("http://www.omg.org/XMI"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::version (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ extender (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("extender"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::extender (o);
+ attr_ (0);
+ }
+
+ void Extension::
+ extenderID (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("extenderID"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::Extension::extenderID (o);
+ attr_ (0);
+ }
+ }
+}
+
+namespace XMI
+{
+ namespace writer
+ {
+ void
+ extension (::XMI::Extension const& s, xercesc::DOMDocument* d)
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != ACE_TEXT ("extension"))
+ {
+ throw 1;
+ }
+
+ struct W : virtual ::XMI::Writer::Extension,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMI.hpp b/modules/CIAO/DAnCE/Config_Handlers/XMI.hpp
new file mode 100644
index 00000000000..143691b8d4a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMI.hpp
@@ -0,0 +1,397 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef XMI_HPP
+#define XMI_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace XMI
+{
+ class Extension;
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+namespace XMI
+{
+ class XSC_XML_Handlers_Export Extension : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Extension, ACE_Null_Mutex > _ptr;
+
+ // id
+ //
+ public:
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ ::XMLSchema::string< ACE_TCHAR >& label ();
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // uuid
+ //
+ public:
+ bool uuid_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& uuid () const;
+ ::XMLSchema::string< ACE_TCHAR >& uuid ();
+ void uuid (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > uuid_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ // idref
+ //
+ public:
+ bool idref_p () const;
+ ::XMLSchema::IDREF< ACE_TCHAR > const& idref () const;
+ ::XMLSchema::IDREF< ACE_TCHAR >& idref ();
+ void idref (::XMLSchema::IDREF< ACE_TCHAR > const& );
+ ::XSCRT::Type* idref_ptr ();
+
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::IDREF< ACE_TCHAR > > idref_;
+
+ // version
+ //
+ public:
+ bool version_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& version () const;
+ ::XMLSchema::string< ACE_TCHAR >& version ();
+ void version (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > version_;
+
+ // extender
+ //
+ public:
+ bool extender_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& extender () const;
+ ::XMLSchema::string< ACE_TCHAR >& extender ();
+ void extender (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > extender_;
+
+ // extenderID
+ //
+ public:
+ bool extenderID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& extenderID () const;
+ ::XMLSchema::string< ACE_TCHAR >& extenderID ();
+ void extenderID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > extenderID_;
+
+ public:
+ Extension ();
+
+ Extension (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Extension (Extension const& s);
+
+ Extension&
+ operator= (Extension const& s);
+
+ private:
+ char regulator__;
+ };
+}
+
+namespace XMI
+{
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::XMI::Extension
+ extension (xercesc::DOMDocument const*);
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace XMI
+{
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export Extension : ::XMLSchema::Traversal::Traverser< ::XMI::Extension >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ id (Type&);
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ id_none (Type&);
+
+ virtual void
+ id_none (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ uuid (Type&);
+
+ virtual void
+ uuid (Type const&);
+
+ virtual void
+ uuid_none (Type&);
+
+ virtual void
+ uuid_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ idref (Type&);
+
+ virtual void
+ idref (Type const&);
+
+ virtual void
+ idref_none (Type&);
+
+ virtual void
+ idref_none (Type const&);
+
+ virtual void
+ version (Type&);
+
+ virtual void
+ version (Type const&);
+
+ virtual void
+ version_none (Type&);
+
+ virtual void
+ version_none (Type const&);
+
+ virtual void
+ extender (Type&);
+
+ virtual void
+ extender (Type const&);
+
+ virtual void
+ extender_none (Type&);
+
+ virtual void
+ extender_none (Type const&);
+
+ virtual void
+ extenderID (Type&);
+
+ virtual void
+ extenderID (Type const&);
+
+ virtual void
+ extenderID_none (Type&);
+
+ virtual void
+ extenderID_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace XMI
+{
+ namespace Writer
+ {
+ struct Extension : Traversal::Extension,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::XMI::Extension Type;
+ Extension (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ id (Type &o)
+ {
+ this->id (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ uuid (Type &o)
+ {
+ this->uuid (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ uuid (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ idref (Type &o)
+ {
+ this->idref (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ idref (Type const&);
+
+ virtual void
+ version (Type &o)
+ {
+ this->version (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ version (Type const&);
+
+ virtual void
+ extender (Type &o)
+ {
+ this->extender (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ extender (Type const&);
+
+ virtual void
+ extenderID (Type &o)
+ {
+ this->extenderID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ extenderID (Type const&);
+
+ protected:
+ Extension ();
+ };
+ }
+}
+
+namespace XMI
+{
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ extension (::XMI::Extension const&, xercesc::DOMDocument*);
+ }
+}
+
+#endif // XMI_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.hpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.hpp
new file mode 100644
index 00000000000..24fa7a9eb6e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.hpp
@@ -0,0 +1,77 @@
+// file : XMLSchema/Traversal.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XMLSCHEMA_TRAVERSAL_HPP
+#define XMLSCHEMA_TRAVERSAL_HPP
+
+#include <XSCRT/Traversal.hpp>
+#include <XMLSchema/Types.hpp>
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+ // Automatic traversal of IDREFs.
+ //
+ //
+ struct IDREF :
+ XSCRT::Traversal::Traverser<XMLSchema::IDREF_Base, XSCRT::Type>
+ {
+ virtual void
+ traverse (XMLSchema::IDREF_Base& r)
+ {
+ if (r.get ()) dispatch (*(r.get ()));
+ }
+
+ virtual void
+ traverse (XMLSchema::IDREF_Base const& r)
+ {
+ if (r.get ()) dispatch (*(r.get ()));
+ }
+ };
+
+
+ template <typename T>
+ struct Traverser : XSCRT::Traversal::Traverser<T, XSCRT::Type>
+ {
+ };
+
+ typedef Traverser<byte> byte;
+ typedef Traverser<unsignedByte> unsignedByte;
+
+ typedef Traverser<short_> short_;
+ typedef Traverser<unsignedShort> unsignedShort;
+
+ typedef Traverser<int_> int_;
+ typedef Traverser<unsignedInt> unsignedInt;
+
+ typedef Traverser<long_> long_;
+ typedef Traverser<unsignedLong> unsignedLong;
+
+ typedef Traverser<boolean> boolean;
+
+ typedef Traverser<float_> float_;
+ typedef Traverser<double_> double_;
+
+ template <typename C>
+ struct string : Traverser<XMLSchema::string<C> >
+ {
+ };
+
+ template <typename C>
+ struct ID : Traverser<XMLSchema::ID<C> >
+ {
+ };
+
+ template <typename C>
+ struct anyURI : Traverser <XMLSchema::anyURI<C> >
+ {
+ };
+ }
+}
+
+#include <XMLSchema/Traversal.ipp>
+#include <XMLSchema/Traversal.tpp>
+
+#endif // XMLSCHEMA_TRAVERSAL_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.ipp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.ipp
new file mode 100644
index 00000000000..a5c614182a3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.ipp
@@ -0,0 +1,10 @@
+// file : XMLSchema/Traversal.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.tpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.tpp
new file mode 100644
index 00000000000..d79c13630fb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Traversal.tpp
@@ -0,0 +1,11 @@
+// file : XMLSchema/Traversal.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.hpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.hpp
new file mode 100644
index 00000000000..e4fa52dbb9c
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.hpp
@@ -0,0 +1,22 @@
+// file : XMLSchema/TypeInfo.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XMLSCHEMA_TYPE_INFO_HPP
+#define XMLSCHEMA_TYPE_INFO_HPP
+
+#include <XSCRT/ExtendedTypeInfo.hpp>
+
+namespace XMLSchema
+{
+ template <typename C>
+ struct TypeInfoInitializer
+ {
+ TypeInfoInitializer (XSCRT::ExtendedTypeInfoMap&);
+ };
+}
+
+#include <XMLSchema/TypeInfo.ipp>
+#include <XMLSchema/TypeInfo.tpp>
+
+#endif // XMLSCHEMA_TYPE_INFO_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.ipp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.ipp
new file mode 100644
index 00000000000..5b9422f38c8
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.ipp
@@ -0,0 +1,7 @@
+// file : XMLSchema/TypeInfo.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp
new file mode 100644
index 00000000000..918197937b7
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp
@@ -0,0 +1,98 @@
+// file : XMLSchema/TypeInfo.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+ //@@ VC6
+ //
+ template<typename T>
+ void
+ add_info (XSCRT::ExtendedTypeInfoMap& map, T*)
+ {
+ using XSCRT::TypeId;
+ using XSCRT::ExtendedTypeInfo;
+
+ TypeId id (typeid (T));
+ ExtendedTypeInfo info (id);
+
+ info.add_base (ExtendedTypeInfo::Access::public_,
+ false,
+ typeid (XSCRT::Type));
+
+ map.insert (std::make_pair (id, info));
+ }
+
+
+ template <typename C>
+ inline
+ TypeInfoInitializer<C>::
+ TypeInfoInitializer (XSCRT::ExtendedTypeInfoMap& map)
+ {
+ using XSCRT::TypeId;
+ using XSCRT::ExtendedTypeInfo;
+
+ // XSCRT::Type
+ //
+ {
+ TypeId id (typeid (XSCRT::Type));
+ map.insert (std::make_pair (id, ExtendedTypeInfo (id)));
+ }
+
+ //@@ VC6
+
+ add_info<byte> (map, 0);
+ add_info<unsignedByte> (map, 0);
+
+ add_info<short_> (map, 0);
+ add_info<unsignedShort> (map, 0);
+
+ add_info<int_> (map, 0);
+ add_info<unsignedInt> (map, 0);
+
+ add_info<long_> (map, 0);
+ add_info<unsignedLong> (map, 0);
+
+ add_info<boolean> (map, 0);
+
+ add_info<float_> (map, 0);;
+ add_info<double_> (map, 0);
+
+ add_info<string<C> > (map, 0);
+
+ add_info<normalizedString<C> > (map, 0);
+ add_info<token<C> > (map, 0);
+ add_info<NMTOKEN<C> > (map, 0);
+ add_info<Name<C> > (map, 0);
+ add_info<NCName<C> > (map, 0);
+ add_info<QName<C> > (map, 0);
+
+ add_info<ID<C> > (map, 0);
+
+ // IDREF_Base
+ //
+ {
+ TypeId id (typeid (IDREF_Base));
+ ExtendedTypeInfo info (id);
+
+ info.add_base (ExtendedTypeInfo::Access::public_,
+ false,
+ typeid (XSCRT::Type));
+
+ map.insert (std::make_pair (id, info));
+ }
+
+ // IDREF
+ //
+ {
+ TypeId id (typeid (IDREF<C>));
+ ExtendedTypeInfo info (id);
+
+ info.add_base (ExtendedTypeInfo::Access::public_,
+ false,
+ typeid (IDREF_Base));
+
+ map.insert (std::make_pair (id, info));
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.hpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.hpp
new file mode 100644
index 00000000000..9f4ea91f3c4
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.hpp
@@ -0,0 +1,670 @@
+// file : XMLSchema/Types.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XMLSCHEMA_TYPES_HPP
+#define XMLSCHEMA_TYPES_HPP
+
+#include <string>
+#include "XSCRT/Elements.hpp"
+
+#include "ace/Basic_Types.h"
+/**
+ * @@ HACK: VC7
+ *
+ * Disabled the warning about using this in the base member initialization section.
+ * Our use in this file is fine.
+ */
+#ifdef _MSC_VER
+# pragma warning ( disable: 4355 )
+#endif
+namespace XMLSchema
+{
+ typedef XSCRT::FundamentalType<ACE_INT8> byte;
+ typedef XSCRT::FundamentalType<ACE_UINT8> unsignedByte;
+
+ typedef XSCRT::FundamentalType<ACE_INT16> short_;
+ typedef XSCRT::FundamentalType<ACE_UINT16> unsignedShort;
+
+ typedef XSCRT::FundamentalType<ACE_INT32> int_;
+ typedef XSCRT::FundamentalType<ACE_UINT32> unsignedInt;
+
+ typedef XSCRT::FundamentalType<ACE_INT64> long_;
+ typedef XSCRT::FundamentalType<ACE_UINT64> unsignedLong;
+
+ //@@ It would be nice to use some arbitrary-length integer class.
+ //
+ typedef long_ decimal;
+ typedef decimal integer;
+ typedef integer nonPositiveInteger;
+ typedef integer nonNegativeInteger;
+ typedef nonNegativeInteger positiveInteger;
+ typedef nonPositiveInteger negativeInteger;
+
+
+ typedef XSCRT::FundamentalType<bool> boolean;
+
+ typedef XSCRT::FundamentalType<float> float_;
+ typedef XSCRT::FundamentalType<double> double_;
+
+ // Just to make GCC 3.3 and other broken compilers shutup.
+ //
+ using std::basic_string;
+
+
+ template <typename C>
+ class string : public XSCRT::Type, public basic_string<C>
+ {
+ protected:
+ typedef basic_string<C> Base__ ;
+
+ public:
+ // typedef ACE_Refcounted_Auto_Ptr < string, ACE_Null_Mutex > _ptr;
+
+ //@@ VC6 does not inject XSCRT::Type into the scope so I have
+ // to qualify it all the time.
+ //
+
+ string ()
+ {
+ }
+
+ string (XSCRT::XML::Element<C> const& e)
+ : Base__ (e.value ())
+ {
+ }
+
+ string (XSCRT::XML::Attribute<C> const& a)
+ : Base__ (a.value ())
+ {
+ }
+
+ string (Base__ const& x)
+ : Base__ (x)
+ {
+ }
+
+ string (C const* x)
+ : Base__ (x)
+ {
+ }
+
+ string&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class normalizedString : public string<C>
+ {
+ protected:
+ typedef typename string<C>::Base__ Base__;
+
+ public:
+ normalizedString ()
+ {
+ }
+
+ normalizedString (XSCRT::XML::Element<C> const& e)
+ : string<C> (e)
+ {
+ }
+
+ normalizedString (XSCRT::XML::Attribute<C> const& a)
+ : string<C> (a)
+ {
+ }
+
+ normalizedString (Base__ const& x)
+ : string<C> (x)
+ {
+ }
+
+ normalizedString (C const* x)
+ : string<C> (x)
+ {
+ }
+
+ normalizedString&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class token : public normalizedString<C>
+ {
+ protected:
+ typedef typename normalizedString<C>::Base__ Base__;
+
+ public:
+ token ()
+ {
+ }
+
+ token (XSCRT::XML::Element<C> const& e)
+ : normalizedString<C> (e)
+ {
+ }
+
+ token (XSCRT::XML::Attribute<C> const& a)
+ : normalizedString<C> (a)
+ {
+ }
+
+ token (Base__ const& x)
+ : normalizedString<C> (x)
+ {
+ }
+
+ token (C const* x)
+ : normalizedString<C> (x)
+ {
+ }
+
+ token&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NMTOKEN : public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ NMTOKEN ()
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ NMTOKEN (Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ NMTOKEN (C const* x)
+ : token<C> (x)
+ {
+ }
+
+ NMTOKEN&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class Name: public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ Name()
+ {
+ }
+
+ Name(XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ Name(XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ Name(Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ Name (C const* x)
+ : token<C> (x)
+ {
+ }
+
+ Name&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NCName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ NCName()
+ {
+ }
+
+ NCName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ NCName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ NCName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ NCName (C const* x)
+ : Name<C> (x)
+ {
+ }
+
+ NCName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class QName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ QName()
+ {
+ }
+
+ QName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ QName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ QName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ QName (C const* x)
+ : Name<C> (x)
+ {
+ }
+
+ QName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ struct IdentityProvider : XSCRT::IdentityProvider
+ {
+ IdentityProvider (NCName<C> const& id)
+ : id_ (id)
+ {
+ }
+
+ virtual ~IdentityProvider (void)
+ {
+ }
+
+ virtual bool
+ before (XSCRT::IdentityProvider const& y) const
+ {
+ return id_ < dynamic_cast<IdentityProvider const&> (y).id_;
+ }
+
+ private:
+ NCName<C> const& id_;
+
+ private:
+ IdentityProvider (IdentityProvider const&);
+
+ IdentityProvider&
+ operator= (IdentityProvider const&);
+ };
+
+
+ template <typename C>
+ class ID : public NCName<C>
+ {
+ protected:
+ typedef typename NCName<C>::Base__ Base__;
+
+ public:
+ ~ID()
+ {
+ unregister_id ();
+ }
+
+ ID ()
+ : id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Element<C> const& e)
+ : NCName<C> (e), id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Attribute<C> const& a)
+ : NCName<C> (a), id_provider_ (*this)
+ {
+ }
+
+ ID (ID const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID (Base__ const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID (C const* x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID&
+ operator= (Base__ const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = x;
+
+ register_id ();
+
+ return *this;
+ }
+
+ ID&
+ operator= (ID const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = static_cast<NCName<C> const&>(x);
+
+ register_id ();
+
+ return *this;
+ }
+
+ public:
+ using NCName<C>::container;
+
+ virtual void
+ container (XSCRT::Type* c)
+ {
+ unregister_id ();
+
+ NCName<C>::container (c);
+
+ register_id ();
+ }
+
+ private:
+ using NCName<C>::empty;
+ using NCName<C>::root;
+
+ void
+ register_id ()
+ {
+ if (NCName<C>::container () != this && !empty ())
+ {
+ //std::wcerr << "registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ NCName<C>::container ()->register_id (id_provider_,
+ NCName<C>::container ());
+ }
+ }
+
+ void
+ unregister_id ()
+ {
+ if (NCName<C>::container () != this && !empty ())
+ {
+ //std::wcerr << "un-registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ NCName<C>::container ()->unregister_id (id_provider_);
+ }
+ }
+
+ private:
+ IdentityProvider<C> id_provider_;
+ };
+
+ struct IDREF_Base : public XSCRT::Type
+ {
+ virtual XSCRT::Type const*
+ get () const = 0;
+
+ virtual XSCRT::Type*
+ get () = 0;
+ };
+
+ template <typename C>
+ class IDREF : public IDREF_Base
+ {
+ public:
+ typedef C CDR_Type__;
+ IDREF ()
+ : id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Element<C> const& e)
+ : id_ (e), id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Attribute<C> const& a)
+ : id_ (a), id_provider_ (id_)
+ {
+ }
+
+ IDREF (IDREF const& x)
+ : XMLSchema::IDREF_Base (),
+ id_ (x.id_), id_provider_ (id_)
+ {
+ }
+
+ IDREF (basic_string<C> const& id)
+ : id_ (id), id_provider_ (id_)
+ {
+ }
+
+ IDREF (C const* id)
+ : id_ (id), id_provider_ (id_)
+ {
+ }
+
+ IDREF&
+ operator= (IDREF const& x)
+ {
+ id_ = x.id_;
+ return *this;
+ }
+
+ IDREF&
+ operator= (basic_string<C> const& x)
+ {
+ id_ = x;
+ return *this;
+ }
+
+ public:
+ NCName<C>
+ id () const
+ {
+ return id_;
+ }
+
+ public:
+ XSCRT::Type const*
+ operator-> () const
+ {
+ return get ();
+ }
+
+ XSCRT::Type*
+ operator-> ()
+ {
+ return get ();
+ }
+
+ XSCRT::Type const&
+ operator* () const
+ {
+ return *(get ());
+ }
+
+ XSCRT::Type&
+ operator* ()
+ {
+ return *(get ());
+ }
+
+ virtual XSCRT::Type const*
+ get () const
+ {
+ if (!id_.empty () && container () != this)
+ {
+ return root ()->lookup_id (id_provider_);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ virtual XSCRT::Type*
+ get ()
+ {
+ if (!id_.empty () && container () != this)
+ {
+ return root ()->lookup_id (id_provider_);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ // conversion to bool
+ //
+ typedef void (IDREF::*bool_convertable)();
+
+ operator bool_convertable () const
+ {
+ return get () ? &IDREF::true_ : 0;
+ }
+
+ private:
+ void true_ ()
+ {
+ }
+
+ private:
+ NCName<C> id_;
+ IdentityProvider<C> id_provider_;
+ };
+
+ template <typename C>
+ class anyURI : public XSCRT::Type, public basic_string <C>
+ {
+ protected:
+ typedef basic_string <C> Base__ ;
+
+ public:
+ // Trait for marshaling string
+ typedef C CDR_Type__;
+
+ //@@ VC6 does not inject XSCRT::Type into the scope so I have
+ // to qualify it all the time.
+ //
+
+ anyURI (void)
+ {
+ }
+
+ anyURI (XSCRT::XML::Element<C> const& e)
+ : Base__ (e.value ())
+ {
+ }
+
+ anyURI (XSCRT::XML::Attribute<C> const& a)
+ : Base__ (a.value ())
+ {
+ }
+
+ anyURI (Base__ const& x)
+ : Base__ (x)
+ {
+ }
+
+ anyURI (C const * x)
+ : Base__ (x)
+ {
+ }
+
+ anyURI (const anyURI& s)
+ : Base__ (s)
+ {
+
+ }
+
+ anyURI & operator= (Base__ const& x)
+ {
+ static_cast <Base__ &> (*this) = x;
+ return *this;
+ }
+ };
+}
+
+#include "XMLSchema/Types.ipp"
+#include "XMLSchema/Types.tpp"
+
+#endif // XMLSCHEMA_TYPES_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.ipp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.ipp
new file mode 100644
index 00000000000..6b749260f55
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.ipp
@@ -0,0 +1,8 @@
+// file : XMLSchema/Types.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.tpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.tpp
new file mode 100644
index 00000000000..4a8bddcf597
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Types.tpp
@@ -0,0 +1,9 @@
+// file : XMLSchema/Types.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.hpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.hpp
new file mode 100644
index 00000000000..4a0c1603efa
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.hpp
@@ -0,0 +1,159 @@
+// file : XMLSchema/Writer.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XMLSCHEMA_WRITER_HPP
+#define XMLSCHEMA_WRITER_HPP
+
+#include <sstream>
+
+#include <XSCRT/Writer.hpp>
+
+#include <XMLSchema/Types.hpp>
+#include <XMLSchema/Traversal.hpp>
+
+#include <iostream>
+
+namespace XMLSchema
+{
+ namespace Writer
+ {
+ template <typename T, typename C>
+ struct FundamentalType : Traversal::Traverser<T>,
+ virtual XSCRT::Writer<C>
+ {
+ FundamentalType (XSCRT::XML::Element<C>& e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ using XSCRT::Writer<C>::top_;
+ using XSCRT::Writer<C>::attr_;
+
+ virtual void
+ traverse (T const& o)
+ {
+ using namespace XSCRT::XML;
+
+ std::basic_ostringstream<C> os;
+
+ os << o;
+
+ if (Attribute<C>* a = attr_ ())
+ {
+ a->value (os.str ());
+ }
+ else
+ {
+ top_().value (os.str ());
+ }
+ }
+
+ protected:
+ virtual void
+ traverse (T &t)
+ {
+ Traversal::Traverser<T>::traverse (t);
+ }
+
+ FundamentalType ()
+ {
+ }
+ };
+
+ template<typename C>
+ struct FundamentalType <XSCRT::FundamentalType<bool>, C> :
+ Traversal::Traverser<XSCRT::FundamentalType<bool> >,
+ virtual XSCRT::Writer<C>
+ {
+ FundamentalType (XSCRT::XML::Element<C> &e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ using XSCRT::Writer<C>::top_;
+ using XSCRT::Writer<C>::attr_;
+
+ virtual void
+ traverse (XSCRT::FundamentalType<bool> const &o)
+ {
+ using namespace XSCRT::XML;
+
+ std::basic_ostringstream<C> os;
+
+ if (o)
+ {
+ os << "true";
+ }
+ else
+ {
+ os << "false";
+ }
+
+ if (Attribute<C>* a = attr_ ())
+ {
+ a->value (os.str ());
+ }
+ else
+ {
+ top_().value (os.str ());
+ }
+ }
+
+ protected:
+ virtual void
+ traverse (XSCRT::FundamentalType<bool> &t)
+ {
+ Traversal::Traverser<XSCRT::FundamentalType<bool> >::traverse (t);
+ }
+
+ FundamentalType ()
+ {
+ }
+ };
+
+
+ template <typename C>
+ struct IDREF : Traversal::Traverser<XMLSchema::IDREF<C> >,
+ virtual XSCRT::Writer<C>
+ {
+ IDREF (XSCRT::XML::Element<C>& e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ virtual void
+ traverse (
+ typename Traversal::Traverser<XMLSchema::IDREF<C> >::Type const& o)
+ {
+ using namespace XSCRT::XML;
+
+ if (Attribute<C>* a = XSCRT::Writer<C>::attr_ ())
+ {
+ a->value (o.id ());
+ }
+ else
+ {
+ XSCRT::Writer<C>::top_().value (o.id ());
+ }
+ }
+
+ protected:
+
+ virtual void
+ traverse (typename Traversal::Traverser<XMLSchema::IDREF<C> >::Type &o)
+ {
+ Traversal::Traverser<XMLSchema::IDREF<C> >::traverse (o);
+ }
+
+ IDREF ()
+ {
+ }
+ };
+ }
+}
+
+#include <XMLSchema/Writer.ipp>
+#include <XMLSchema/Writer.tpp>
+
+#endif // XMLSCHEMA_WRITER_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.ipp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.ipp
new file mode 100644
index 00000000000..2b7c9a4b939
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.ipp
@@ -0,0 +1,10 @@
+// file : XMLSchema/Writer.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+ namespace Writer
+ {
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.tpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.tpp
new file mode 100644
index 00000000000..6c57de04d81
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/Writer.tpp
@@ -0,0 +1,10 @@
+// file : XMLSchema/Writer.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XMLSchema
+{
+ namespace Writer
+ {
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/id_map.hpp b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/id_map.hpp
new file mode 100644
index 00000000000..a2843d44693
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XMLSchema/id_map.hpp
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+// $Id$
+
+//=============================================================================
+/**
+ * @file id_map.hpp
+ *
+ * This file contains the ID_Map class which has the responsibility of linking
+ * XML IDREF objects to their XML ID counterparts. In the output files, this
+ * means that a <IDREF name>_ptr() will return a pointer to the identified
+ * object.
+ *
+ * Exception NULL_PTR_Entry is thrown when a program attempts to add a NULL_PTR
+ * to either the id_map or idref_map.
+ *
+ * Exception Unresolved_IDREF is thrown if an element in an XML document attempts
+ * to reference an ID that does not exist.
+ *
+ * @author Jason R. Cody <jason.r.cody@vanderbilt.edu; jason.r.cody@gmail.com>
+ */
+//=============================================================================
+
+#ifndef _ID_MAP_H
+#define _ID_MAP_H
+
+//ID_Map makes use of the Types::idref_ data member to set it to the appropriate
+//object created during parsing
+#include "XMLSchema/Types.hpp"
+
+//The ID_Map is a Thread Specific Storage element.
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+
+ /**
+ * @class ID_Map
+ *
+ * @brief A class that handles the mapping of IDREF objects to objects with the
+ * respective ID.
+ */
+ class ID_Map
+ {
+ public:
+
+ //Trait to allow for ease of thread specific storage.
+ typedef ACE_TSS<ID_Map> TSS_ID_Map;
+ typedef std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator id_iterator;
+ typedef std::multimap<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator idref_iterator;
+ typedef std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*> ID_MAP;
+ typedef std::multimap<std::basic_string<ACE_TCHAR>, XSCRT::Type*> IDREF_MAP;
+
+
+ //Exception Classes
+ //NULL_PTR_Entry thrown when a NULL PTR is added to the
+ //ID_Map
+ class NULL_PTR_Entry {};
+
+ //Unresolved_IDREF thrown when there are IDREF's in the
+ //XML document.
+ class Unresolved_IDREF {};
+
+ //Only a default constructor and destructor are needed
+ //Constructor
+ ID_Map ()
+ {
+ }
+
+ //Destructor
+ ~ID_Map ()
+ {
+ }
+
+ //Add an ID to the ID map
+ void add_id (std::basic_string<ACE_TCHAR> id, XSCRT::Type *obj_ref)
+ {
+ if (obj_ref)
+ {
+ this->id_map_.insert (ID_MAP::value_type(id, obj_ref));
+ }
+ else
+ {
+ throw NULL_PTR_Entry();
+ }
+ return;
+ }
+
+ //Add an IDREF to the IDREF map
+ void add_idref (std::basic_string<ACE_TCHAR> idref, XSCRT::Type *obj_ref)
+ {
+ if (obj_ref)
+ {
+ this->idref_map_.insert (IDREF_MAP::value_type(idref, obj_ref));
+ }
+ else
+ {
+ throw NULL_PTR_Entry();
+ }
+ return;
+ }
+
+ //Sets the referencing elements XSCRT::Type::idref_ to point to the
+ //referenced element.
+ //Note: The pointer is of type "XSCRT::Type*"
+ void resolve_idref ( void )
+ {
+ //Declare iterators to navigate the maps
+ ID_Map::id_iterator id_iterator;
+ ID_Map::idref_iterator idref_iterator;
+
+ for (idref_iterator = this->idref_map_.begin();
+ idref_iterator != this->idref_map_.end();
+ ++idref_iterator)
+ {
+ //Find the ID that matches the IDREF element
+ id_iterator = this->id_map_.find(idref_iterator->first);
+ if (id_iterator != this->id_map_.end())
+ {
+ //Add the IDREF identifier and the reference to the
+ //identified object
+ std::basic_string<ACE_TCHAR> temp_id = id_iterator->first;
+ idref_iterator->second->set_idref(temp_id, id_iterator->second);
+ }
+ else
+ {
+ //throw Unresolved_IDREF();
+ }
+ }
+ }
+
+ private:
+ //id_map_: maps the ID string to the element with the
+ // ID attribute
+ //idref_map_: multimap that maps the IDREF string to the
+ // element with the IDREF attribute
+ ID_MAP id_map_;
+ IDREF_MAP idref_map_;
+ };
+
+#endif /* _ID_MAP_HPP */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.cpp b/modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.cpp
new file mode 100644
index 00000000000..b44f31c452a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.cpp
@@ -0,0 +1,103 @@
+// $Id$
+
+#include "XML_File_Intf.h"
+#include "XML_Typedefs.h"
+#include "Deployment.hpp"
+#include "DP_Handler.h"
+#include "Common.h"
+
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ XML_File_Intf::XML_File_Intf (const ACE_TCHAR *file)
+ : file_ (file),
+ idl_dp_ (0)
+ {
+ }
+
+ bool
+ XML_File_Intf::read_process_file (const ACE_TCHAR *file)
+ {
+ DANCE_TRACE("XML_File_Intf::read_process_file");
+
+ try
+ {
+ if (!XML_Helper::XML_HELPER.is_initialized ())
+ return false;
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO "XML_File_Intf::read_process_file - "
+ "Constructing DOM\n"));
+ XERCES_CPP_NAMESPACE::DOMDocument *dom =
+ XML_Helper::XML_HELPER.create_dom ((file));
+
+ if (dom == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "XML_File_Intf::read_process_file - "
+ "Failed to open file %s\n", file));
+ return false;
+ }
+
+ XERCES_CPP_NAMESPACE::DOMElement *foo = dom->getDocumentElement ();
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO "XML_File_Intf::read_process_file - "
+ "DOMElement pointer: %u\n", foo));
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO "XML_File_Intf::read_process_file - "
+ "Parsing XML file with XSC\n"));
+ deploymentPlan dp =
+ CIAO::Config_Handlers::reader::DeploymentPlan (dom);
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO "XML_File_Intf::read_process_file - "
+ "Processing using config handlers\n"));
+ DP_Handler dp_handler (dp);
+
+ this->idl_dp_.reset (dp_handler.plan ());
+
+ if (this->idl_dp_.get ())
+ return true;
+ }
+ catch (const Config_Error &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "XML_File_Intf::error at %C: %C\n",
+ ex.name_.c_str (), ex.error_.c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "XML_File_Intf::caught - "
+ "Unexpected exception whilst parsing XML into IDL.\n"));
+ }
+
+ return false;
+ }
+
+ ::Deployment::DeploymentPlan const *
+ XML_File_Intf::get_plan (void)
+ {
+ DANCE_TRACE("get_plan");
+ if (this->idl_dp_.get () == 0 && !this->read_process_file (this->file_.c_str ()))
+ return 0;
+
+ return this->idl_dp_.get ();
+ }
+
+ ::Deployment::DeploymentPlan *
+ XML_File_Intf::release_plan (void)
+ {
+ DANCE_TRACE("XML_File_Intf::get_plan");
+ if (this->idl_dp_.get () == 0 && !this->read_process_file (this->file_.c_str ()))
+ return 0;
+ return this->idl_dp_.release ();
+ }
+
+ void
+ XML_File_Intf::add_search_path (const ACE_TCHAR *environment,
+ const ACE_TCHAR *relpath)
+ {
+ XML_Helper::_path_resolver.add_path (environment, relpath);
+ }
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.h b/modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.h
new file mode 100644
index 00000000000..95fb1dc2df7
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XML_File_Intf.h
@@ -0,0 +1,56 @@
+//==============================================================
+/**
+ * @file XML_File_Intf.h
+ *
+ * $Id$
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_CONFIG_XML_FILE_INTF_H
+#define CIAO_CONFIG_XML_FILE_INTF_H
+#include /**/ "ace/pre.h"
+
+#include "Config_Handlers_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Auto_Ptr.h"
+
+#include <string>
+
+namespace Deployment
+{
+ struct DeploymentPlan;
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Config_Handlers_Export XML_File_Intf
+ {
+ public:
+ XML_File_Intf (const ACE_TCHAR *file);
+
+ ::Deployment::DeploymentPlan const *get_plan (void);
+ ::Deployment::DeploymentPlan *release_plan (void);
+
+ void add_search_path (const ACE_TCHAR *environment,
+ const ACE_TCHAR *relpath);
+
+ protected:
+
+ bool read_process_file (const ACE_TCHAR *file);
+
+ private:
+ std::basic_string <ACE_TCHAR> file_;
+ ACE_Auto_Ptr< ::Deployment::DeploymentPlan> idl_dp_;
+ };
+ }
+}
+#include /**/ "ace/post.h"
+#endif /*CIAO_CONFIG_XML_FILE_INTF_H*/
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.cpp b/modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.cpp
new file mode 100644
index 00000000000..9d57ac17e92
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.cpp
@@ -0,0 +1,14 @@
+// $Id$
+
+#include "XML_Typedefs.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ XML_Helper::PATH_RESOLVER XML_Helper::_path_resolver;
+ XML_Helper::XML_RESOLVER XML_Helper::_xml_resolver (XML_Helper::_path_resolver);
+ XML_Helper::ERROR_HANDLER XML_Helper::_xml_error_handler;
+ XML_Helper::HELPER XML_Helper::XML_HELPER (XML_Helper::_xml_resolver, XML_Helper::_xml_error_handler);
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.h b/modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.h
new file mode 100644
index 00000000000..f0054df2e57
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XML_Typedefs.h
@@ -0,0 +1,38 @@
+/**
+ * @file XML_Typedefs.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Typedefs from the XML Utilities.
+ */
+#ifndef XML_TYPEDEFS_H
+#define XML_TYPEDEFS_H
+
+#include "XSC_XML_Handlers_Export.h"
+#include "XML/XML_Helper.h"
+#include "XML/XML_Schema_Resolver.h"
+#include "XML/XML_Error_Handler.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export XML_Helper
+ {
+ public:
+ typedef ::CIAO::XML::Environment_Resolver PATH_RESOLVER;
+ typedef ::CIAO::XML::XML_Schema_Resolver< ::CIAO::XML::Environment_Resolver > XML_RESOLVER;
+ typedef ::CIAO::XML::XML_Error_Handler ERROR_HANDLER;
+ typedef ::CIAO::XML::XML_Helper< XML_RESOLVER, ERROR_HANDLER > HELPER;
+
+ static PATH_RESOLVER _path_resolver;
+ static XML_RESOLVER _xml_resolver;
+ static ERROR_HANDLER _xml_error_handler;
+
+ public:
+ static HELPER XML_HELPER;
+ };
+ }
+}
+
+
+#endif /* XML_TYPEDEFS_H */
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.hpp
new file mode 100644
index 00000000000..0c8b6979282
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.hpp
@@ -0,0 +1,572 @@
+// file : XSCRT/Elements.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XSCRT_ELEMENTS_HPP
+#define XSCRT_ELEMENTS_HPP
+
+#include <map>
+#include <string>
+#include <sstream>
+#include "ace/ace_wchar.h"
+// #include <iostream> //@@ tmp
+
+#include <XSCRT/Parser.hpp>
+#include "ace/Refcounted_Auto_Ptr.h"
+
+namespace XSCRT
+{
+ struct IdentityProvider
+ {
+ virtual bool
+ before (IdentityProvider const&) const = 0;
+
+ virtual ~IdentityProvider (void)
+ {
+
+ }
+ };
+
+ class Type
+ {
+ public:
+
+ virtual ~Type (void)
+ {
+ }
+
+ protected:
+ Type (void)
+ : container_ (0)
+ {
+ }
+
+ template <typename C>
+ Type (XML::Element<C> const&)
+ : container_ (0)
+ {
+ }
+
+ template <typename C>
+ Type (XML::Attribute<C> const&)
+ : container_ (0)
+ {
+ }
+
+ Type (Type const&)
+ : container_ (0)
+ {
+ }
+
+ Type&
+ operator= (Type const&)
+ {
+ //@@ I don't need this.
+ //if (map_.get ()) map_->clear (); // Flush the map.
+ return *this;
+ }
+
+ public:
+ Type const*
+ container () const
+ {
+ return container_ ? container_ : this;
+ }
+
+ Type*
+ container ()
+ {
+ return container_ ? container_ : this;
+ }
+
+
+ Type const*
+ root () const
+ {
+ Type const* r = container ();
+
+ //@@ VC6 can't handle this inside the loop.
+ //
+ Type const* c = r->container ();
+
+ for (; c != r; c = c->container ()) r = c;
+
+ return r;
+ }
+
+ Type*
+ root ()
+ {
+ Type* r = container ();
+
+ for (Type* c = r->container (); c != r; c = c->container ()) r = c;
+
+ return r;
+ }
+
+ //@@
+ //protected:
+
+ public:
+ virtual void
+ container (Type* c)
+ {
+ if (container_ == c) return;
+
+ // Revoke registrations from our old container.
+ //
+ if (container_ != 0 && map_.get ())
+ {
+ for (Map_::iterator i (map_->begin ()); i != map_->end (); ++i)
+ {
+ //std::wcerr << "revoking " << i->second
+ // << " to " << container_ << std::endl;
+
+ container_->unregister_id (*(i->first));
+ }
+ }
+
+ // Copy registrations to our new container.
+ //
+ if (c != 0 && map_.get ())
+ {
+ for (Map_::iterator i (map_->begin ()); i != map_->end (); ++i)
+ {
+ //std::wcerr << "copying " << i->second
+ // << " to " << c << std::endl;
+
+ c->register_id (*(i->first), i->second);
+ }
+ }
+
+ container_ = c;
+ }
+
+ //@@
+ //protected:
+
+ public:
+ void
+ register_id (IdentityProvider const& id, Type* t)
+ {
+ if (map_.get () == 0)
+ {
+ map_ = std::auto_ptr<Map_> (new Map_);
+ }
+
+ if (!map_->insert (
+ std::pair<IdentityProvider const*, Type*> (&id, t)).second)
+ {
+ throw 1;
+ }
+
+ if (container () != this) container ()->register_id (id, t);
+ }
+
+ void
+ unregister_id (IdentityProvider const& id)
+ {
+ if (map_.get ())
+ {
+ Map_::iterator it (map_->find (&id));
+
+ if (it != map_->end ())
+ {
+ map_->erase (it);
+
+ if (container () != this) container ()->unregister_id (id);
+
+ return;
+ }
+ }
+
+ throw 1;
+ }
+
+ Type*
+ lookup_id (IdentityProvider const& id) const
+ {
+ if (map_.get ())
+ {
+ Map_::const_iterator it (map_->find (&id));
+
+ if (it != map_->end ())
+ {
+ return it->second;
+ }
+ }
+
+ return 0;
+ }
+
+ //Get and set methods for the idref_map_ data member
+ Type* get_idref (const char* name)
+ {
+ std::basic_string<ACE_TCHAR> name_string (ACE_TEXT_CHAR_TO_TCHAR(name));
+ std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator i =
+ this->idref_map_.find(name_string);
+ if (i != idref_map_.end())
+ {
+ return i->second;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ Type* get_idref (const wchar_t *name)
+ {
+ std::basic_string<ACE_TCHAR> name_string (ACE_TEXT_WCHAR_TO_TCHAR(name));
+ std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator i =
+ this->idref_map_.find(name_string);
+ if (i != idref_map_.end())
+ {
+ return i->second;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+
+ void set_idref (std::basic_string<ACE_TCHAR> name, Type* new_idref)
+ {
+ this->idref_map_.insert(std::pair<std::basic_string<ACE_TCHAR>,Type*>(name, new_idref));
+ return;
+ }
+
+ private:
+
+ //Data member to handle unbounded IDREF attributes and elements
+ std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*> idref_map_;
+
+ Type* container_;
+
+ struct IdentityComparator
+ {
+ bool operator () (IdentityProvider const* x,
+ IdentityProvider const* y) const
+ {
+ return x->before (*y);
+ }
+ };
+
+ typedef
+ std::map<IdentityProvider const*, Type*, IdentityComparator>
+ Map_;
+
+ std::auto_ptr<Map_> map_;
+ };
+
+ // Fundamental types template.
+ //
+ //
+ template <typename X>
+ class FundamentalType : public Type
+ {
+ public:
+ // Trait for marshaling a FundamentalType X
+ typedef X CDR_Type__;
+#if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x620)
+ typedef ACE_Refcounted_Auto_Ptr < FundamentalType, ACE_Null_Mutex > _ptr;
+#endif /* !__BORLANDC__ */
+
+ FundamentalType ()
+ {
+ }
+
+ template<typename C>
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+ s >> x_;
+ }
+
+ template<typename C>
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+ s >> x_;
+ }
+
+ FundamentalType (X const& x)
+ : x_ (x)
+ {
+ }
+
+ FundamentalType&
+ operator= (X const& x)
+ {
+ x_ = x;
+ return *this;
+ }
+
+ public:
+ operator X const& () const
+ {
+ return x_;
+ }
+
+ operator X& ()
+ {
+ return x_;
+ }
+
+ protected:
+ X x_;
+ };
+
+#if !((defined (__GNUC__) && (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))) || \
+ (defined (__BORLANDC__) && (__BORLANDC__ < 0x620)) || \
+ (defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x5100)))
+
+ // Stuff for normal compilers.
+ //
+
+ // Specialization for `signed char'
+ //
+ //
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<signed char>::
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<signed char>::
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ // Specialization for `unsigned char'
+ //
+ //
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<unsigned char>::
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<unsigned char>::
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+#else
+
+ // Stuff for broken VC6 & gcc < 3.3. Don't like what you see - use better
+ // compiler!
+ //
+
+ // Specialization for signed char.
+ //
+ template <>
+ class FundamentalType<signed char> : public Type
+ {
+ public:
+ FundamentalType ()
+ {
+ }
+
+ template<typename C>
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ template<typename C>
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ FundamentalType (signed char const& x)
+ : x_ (x)
+ {
+ }
+
+ FundamentalType&
+ operator= (signed char const& x)
+ {
+ x_ = x;
+ return *this;
+ }
+
+ public:
+ operator signed char const& () const
+ {
+ return x_;
+ }
+
+ operator signed char& ()
+ {
+ return x_;
+ }
+
+ protected:
+ signed char x_;
+ };
+
+ // Specialization for unsigned char.
+ //
+ template <>
+ class FundamentalType<unsigned char> : public Type
+ {
+ public:
+ FundamentalType ()
+ {
+ }
+
+ template<typename C>
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+ template<typename C>
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+ FundamentalType (unsigned char const& x)
+ : x_ (x)
+ {
+ }
+
+ FundamentalType&
+ operator= (unsigned char const& x)
+ {
+ x_ = x;
+ return *this;
+ }
+
+ public:
+ operator unsigned char const& () const
+ {
+ return x_;
+ }
+
+ operator unsigned char& ()
+ {
+ return x_;
+ }
+
+ protected:
+ unsigned char x_;
+ };
+
+#endif
+
+
+ // Specialization for bool.
+ //
+ //
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Element<char> const& e)
+ {
+ x_ = (e.value () == "true") || (e.value () == "1");
+ }
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Element<wchar_t> const& e)
+ {
+ x_ = (e.value () == L"true") || (e.value () == L"1");
+ }
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Attribute<char> const& a)
+ {
+ x_ = (a.value () == "true") || (a.value () == "1");
+ }
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Attribute<wchar_t> const& a)
+ {
+ x_ = (a.value () == L"true") || (a.value () == L"1");
+ }
+
+}
+
+#include <XSCRT/Elements.ipp>
+#include <XSCRT/Elements.tpp>
+
+#endif // XSCRT_ELEMENTS_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.ipp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.ipp
new file mode 100644
index 00000000000..414f03eb031
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.ipp
@@ -0,0 +1,7 @@
+// file : XSC/Elements.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSC
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.tpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.tpp
new file mode 100644
index 00000000000..7539a36d75f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Elements.tpp
@@ -0,0 +1,7 @@
+// file : XSC/Elements.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSC
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp
new file mode 100644
index 00000000000..e2ab4b64956
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp
@@ -0,0 +1,182 @@
+// file : XSCRT/ExtendedTypeInfo.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XSCRT_EXTENDED_TYPE_INFO_HPP
+#define XSCRT_EXTENDED_TYPE_INFO_HPP
+
+#include <map>
+#include <vector>
+#include <typeinfo>
+
+namespace XSCRT
+{
+ //
+ //
+ //
+ class TypeId
+ {
+ public:
+ template<typename T>
+ TypeId (T const& t);
+
+ TypeId (std::type_info const& tid);
+
+ public:
+ bool
+ operator == (TypeId const& other) const;
+
+ bool
+ operator != (TypeId const& other) const;
+
+ bool
+ operator < (TypeId const& other) const;
+
+ /*
+ friend std::ostream&
+ operator << (std::ostream& os, TypeId const& t);
+ */
+
+ public:
+ char const*
+ name () const
+ {
+ return tid_->name ();
+ }
+
+ private:
+ std::type_info const* tid_;
+ };
+
+
+ //
+ //
+ //
+ class ExtendedTypeInfo
+ {
+ public:
+
+ //
+ //
+ //
+ struct Access
+ {
+ enum Value
+ {
+ private_,
+ protected_,
+ public_
+ };
+ };
+
+
+ //
+ //
+ //
+ class BaseInfo
+ {
+ public:
+ BaseInfo (Access::Value access, bool virtual_base, TypeId const& tid);
+
+ public:
+ ExtendedTypeInfo const&
+ type_info () const;
+
+ Access::Value
+ access () const;
+
+ bool
+ virtual_base () const;
+
+ private:
+ TypeId tid_;
+ mutable ExtendedTypeInfo const* ti_;
+ bool virtual_base_;
+ Access::Value access_;
+ };
+
+ private:
+ typedef
+ std::vector<BaseInfo>
+ BaseInfoList;
+
+ public:
+ typedef
+ BaseInfoList::const_iterator
+ BaseIterator;
+
+ public:
+ ExtendedTypeInfo (TypeId const& tid);
+
+ TypeId
+ type_id () const;
+
+ BaseIterator
+ begin_base () const;
+
+ BaseIterator
+ end_base () const;
+
+ void
+ add_base (Access::Value access, bool virtual_base, TypeId const& tid);
+
+ private:
+ TypeId tid_;
+ BaseInfoList base_;
+ };
+
+ typedef
+ std::map<TypeId, ExtendedTypeInfo>
+ ExtendedTypeInfoMap;
+
+
+ ExtendedTypeInfoMap&
+ extended_type_info_map ();
+
+
+ class NotAvailable {};
+
+
+ template<typename T>
+ ExtendedTypeInfo const&
+ extended_type_info (T const& t)
+ {
+ return extended_type_info (typeid (t));
+ }
+
+ template<typename T>
+ ExtendedTypeInfo const&
+ extended_type_info ()
+ {
+ return extended_type_info (typeid (T));
+ }
+
+ //@@ Had to use function template specialization because VC6
+ // cannot handle simply overloaded functions.
+ //
+
+ template <>
+ inline
+ ExtendedTypeInfo const&
+ extended_type_info<TypeId> (TypeId const& tid)
+ {
+ ExtendedTypeInfoMap::const_iterator i (
+ extended_type_info_map ().find (tid));
+
+ if (i == extended_type_info_map ().end ()) throw NotAvailable ();
+
+ return i->second;
+ }
+
+ template <>
+ inline
+ ExtendedTypeInfo const&
+ extended_type_info<std::type_info> (std::type_info const& tid)
+ {
+ return extended_type_info (TypeId (tid));
+ }
+}
+
+#include <XSCRT/ExtendedTypeInfo.ipp>
+
+#endif // XSCRT_EXTENDED_TYPE_INFO_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp
new file mode 100644
index 00000000000..6c4fba2cf88
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp
@@ -0,0 +1,141 @@
+// file : XSCRT/ExtendedTypeInfo.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+
+/*
+ * @@HACK: Visual Studio.
+ * I think the return value for operator== for type_info
+ * in VC7 (perhaps others) is int when is should be bool.
+ * This causes a warning about converting the return value from
+ * int to bool.
+ */
+#ifdef _MSC_VER
+# pragma warning( disable: 4800 )
+#endif
+
+namespace XSCRT
+{
+ // TypeId
+ //
+ //
+ inline
+ TypeId::
+ TypeId (std::type_info const& tid)
+ : tid_ (&tid)
+ {
+ }
+
+ inline
+ bool TypeId::
+ operator == (TypeId const& other) const
+ {
+ return *tid_ == *other.tid_;
+ }
+
+ inline
+ bool TypeId::
+ operator != (TypeId const& other) const
+ {
+ return *tid_ != *other.tid_;
+ }
+
+ inline
+ bool TypeId::
+ operator < (TypeId const& other) const
+ {
+ return tid_->before (*other.tid_);
+ }
+
+
+ // ExtendedTypeInfo::BaseInfo
+ //
+ //
+
+ inline
+ ExtendedTypeInfo::BaseInfo::
+ BaseInfo (Access::Value access, bool virtual_base, TypeId const& tid)
+ : tid_ (tid),
+ ti_ (0),
+ virtual_base_ (virtual_base),
+ access_ (access)
+ {
+ }
+
+ inline
+ ExtendedTypeInfo const& ExtendedTypeInfo::BaseInfo::
+ type_info () const
+ {
+ if (ti_ == 0) ti_ = &(extended_type_info (tid_));
+
+ return *ti_;
+ }
+
+
+ inline
+ ExtendedTypeInfo::Access::Value ExtendedTypeInfo::BaseInfo::
+ access () const
+ {
+ return access_;
+ }
+
+ inline
+ bool ExtendedTypeInfo::BaseInfo::
+ virtual_base () const
+ {
+ return virtual_base_;
+ }
+
+
+ // ExtendedTypeInfo
+ //
+ //
+ inline
+ ExtendedTypeInfo::
+ ExtendedTypeInfo (TypeId const& tid)
+ : tid_ (tid)
+ {
+ }
+
+ inline
+ TypeId ExtendedTypeInfo::
+ type_id () const
+ {
+ return tid_;
+ }
+
+ inline
+ ExtendedTypeInfo::BaseIterator ExtendedTypeInfo::
+ begin_base () const
+ {
+ return base_.begin ();
+ }
+
+
+ inline
+ ExtendedTypeInfo::BaseIterator ExtendedTypeInfo::
+ end_base () const
+ {
+ return base_.end ();
+ }
+
+ inline
+ void ExtendedTypeInfo::
+ add_base (Access::Value access, bool virtual_base, TypeId const& tid)
+ {
+ base_.push_back (BaseInfo (access, virtual_base, tid));
+ }
+
+ // ExtendedTypeInfoMap
+ //
+ //
+
+ inline
+ ExtendedTypeInfoMap&
+ extended_type_info_map ()
+ {
+ static ExtendedTypeInfoMap extended_type_info_map_;
+
+ return extended_type_info_map_;
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.hpp
new file mode 100644
index 00000000000..5fa1e827f8d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.hpp
@@ -0,0 +1,67 @@
+// file : XSCRT/Parser.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XSCRT_PARSER_HPP
+#define XSCRT_PARSER_HPP
+
+#include <string>
+
+#include "XSCRT/XML.hpp"
+
+namespace XSCRT
+{
+ template <typename C>
+ class Parser
+ {
+ public:
+ Parser (XML::Element<C> const& e)
+ : e_ (e.dom_element ()->getChildNodes ()), ei_ (0),
+ a_ (e.dom_element ()->getAttributes ()), ai_ (0)
+ {
+ }
+
+ bool
+ more_elements () const
+ {
+ return e_->getLength () > ei_;
+ }
+
+ XML::Element<C>
+ next_element ()
+ {
+ return XML::Element<C> (XML::dom_cast <xercesc::DOMElement*> (e_->item (ei_++)));
+ }
+
+ bool
+ more_attributes () const
+ {
+ return a_->getLength () > ai_;
+ }
+
+ XML::Attribute<C>
+ next_attribute ()
+ {
+ return XML::Attribute<C> (
+ XML::dom_cast <xercesc::DOMAttr*> (a_->item (ai_++)));
+ }
+
+ private:
+ xercesc::DOMNodeList const* e_;
+ unsigned long ei_;
+
+ xercesc::DOMNamedNodeMap const* a_;
+ unsigned long ai_;
+
+ private:
+ Parser (Parser const&);
+
+ void
+ operator= (Parser const&);
+ };
+}
+
+#include "XSCRT/Parser.ipp"
+#include "XSCRT/Parser.tpp"
+
+#endif // XSCRT_PARSER_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.ipp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.ipp
new file mode 100644
index 00000000000..f7de09602ae
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.ipp
@@ -0,0 +1,7 @@
+// file : XSCRT/Parser.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.tpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.tpp
new file mode 100644
index 00000000000..75b9f48eb1f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Parser.tpp
@@ -0,0 +1,7 @@
+// file : XSCRT/Parser.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.hpp
new file mode 100644
index 00000000000..482d5fc77e1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.hpp
@@ -0,0 +1,266 @@
+// file : XSCRT/Traversal.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XSCRT_TRAVERSAL_HPP
+#define XSCRT_TRAVERSAL_HPP
+
+#include <map>
+#include <set>
+#include <vector>
+
+#include "XSCRT/ExtendedTypeInfo.hpp"
+
+namespace XSCRT
+{
+ namespace Traversal
+ {
+ //
+ //
+ //
+ template<typename B>
+ class TraverserBase
+ {
+ protected:
+ virtual
+ ~TraverserBase ();
+
+ //@@ VC6
+ public:
+ virtual void
+ trampoline (B& n) = 0;
+
+ virtual void
+ trampoline (B const& n) = 0;
+ };
+
+
+ //
+ //
+ //
+ template <typename B>
+ class DispatcherBase
+ {
+ public:
+ virtual
+ ~DispatcherBase ();
+
+ virtual void
+ dispatch (B& n);
+
+ virtual void
+ dispatch (B const& n);
+
+ void
+ map (TypeId id, TraverserBase<B>& t)
+ {
+ //wcerr << "map for " << id.name () << " to " << &t
+ // << " in " << &traversal_map_ << endl;
+
+ //@@ VC6
+ Traversers& traversers = traversal_map_[id];
+ traversers.push_back (&t);
+ }
+
+ public:
+ typedef
+ std::vector<TraverserBase<B>*>
+ Traversers;
+
+ typedef
+ std::map<TypeId, Traversers>
+ TraversalMap;
+
+ typedef
+ typename TraversalMap::const_iterator
+ Iterator;
+
+ Iterator
+ begin () const
+ {
+ return traversal_map_.begin ();
+ }
+
+ Iterator
+ end () const
+ {
+ return traversal_map_.end ();
+ }
+
+ private:
+ struct TypeInfoComparator
+ {
+ bool
+ operator () (ExtendedTypeInfo const& x,
+ ExtendedTypeInfo const& y) const
+ {
+ return x.type_id () < y.type_id ();
+ }
+ };
+
+ typedef
+ std::map<ExtendedTypeInfo, unsigned long, TypeInfoComparator>
+ LevelMap;
+
+ typedef
+ std::set<ExtendedTypeInfo, TypeInfoComparator>
+ TypeInfoSet;
+
+ static unsigned long
+ compute_levels (ExtendedTypeInfo const& ti,
+ unsigned long cur,
+ LevelMap& map);
+
+ static void
+ flatten_tree (ExtendedTypeInfo const& ti, TypeInfoSet& set);
+
+ private:
+ TraversalMap traversal_map_;
+ };
+
+
+ //
+ //
+ //
+ template <typename B>
+ class Dispatcher : public virtual DispatcherBase<B>
+ {
+ public:
+ Dispatcher ()
+ : merge_ (true)
+ {
+ }
+
+ void
+ traverser (DispatcherBase<B>& d)
+ {
+ for (typename DispatcherBase<B>::Iterator
+ i (d.begin ()), end (d.end ());
+ i != end; ++i)
+ {
+ for (typename DispatcherBase<B>::Traversers::const_iterator
+ t (i->second.begin ()), end (i->second.end ());
+ t != end; ++t)
+ {
+ dispatcher_.map (i->first, **t);
+ }
+ }
+ }
+
+ public:
+ virtual void
+ dispatch (B& n)
+ {
+ merge ();
+ dispatcher_.dispatch (n);
+ }
+
+ virtual void
+ dispatch (B const& n)
+ {
+ merge ();
+ dispatcher_.dispatch (n);
+ }
+
+ using DispatcherBase<B>::begin;
+ using DispatcherBase<B>::end;
+
+ private:
+ void
+ merge ()
+ {
+ if (merge_)
+ {
+ for (typename DispatcherBase<B>::Iterator
+ i (begin ()), e (end ()); i != e; ++i)
+ {
+ for (typename DispatcherBase<B>::Traversers::const_iterator
+ t (i->second.begin ()), e (i->second.end ()); t != e; ++t)
+ {
+ dispatcher_.map (i->first, **t);
+ }
+ }
+
+ merge_ = false;
+ }
+ }
+
+ protected:
+ // DispatcherBase<B>&
+ // traverser ()
+ // {
+ // return dispatcher_;
+ // }
+
+ template <typename X, typename A, typename I>
+ void
+ iterate_and_dispatch (I begin, I end, X& x, void (X::*next)(A&), A& a)
+ {
+ for (; begin != end;)
+ {
+ dispatch (*begin);
+
+ if (++begin != end) (x.*next) (a);
+ }
+ }
+
+ private:
+ bool merge_;
+ DispatcherBase<B> dispatcher_;
+ };
+
+
+
+ //
+ //
+ //
+ template <typename T, typename B>
+ struct Traverser : TraverserBase<B>, virtual Dispatcher<B>
+ {
+ typedef
+ T
+ Type;
+
+ Traverser ()
+ {
+ map (typeid (Type), *this);
+ }
+
+ virtual void
+ traverse (Type&)
+ {
+ abort ();
+ }
+
+ virtual void
+ traverse (Type const&)
+ {
+ abort ();
+ }
+
+ protected:
+ virtual void
+ trampoline (B& n)
+ {
+ //wcerr << "trampoline for " << &n << " to type "
+ // << typeid (Type).name () << endl;
+
+ traverse (dynamic_cast<Type&> (n));
+ }
+
+ virtual void
+ trampoline (B const& n)
+ {
+ //wcerr << "trampoline for " << &n << " to type "
+ // << typeid (Type).name () << endl;
+
+ traverse (dynamic_cast<Type const&> (n));
+ }
+ };
+ }
+}
+
+#include <XSCRT/Traversal.ipp>
+#include <XSCRT/Traversal.tpp>
+
+#endif // XSCRT_TRAVERSAL_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.ipp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.ipp
new file mode 100644
index 00000000000..bc2a462334a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.ipp
@@ -0,0 +1,7 @@
+// file : XSCRT/Traversal.ixx
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.tpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.tpp
new file mode 100644
index 00000000000..51889c0fb9b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Traversal.tpp
@@ -0,0 +1,195 @@
+// file : XSCRT/Traversal.txx
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+ namespace Traversal
+ {
+ // TraverserBase
+ //
+ //
+
+ template<typename B>
+ TraverserBase<B>::
+ ~TraverserBase ()
+ {
+ }
+
+ // DispatcherBase
+ //
+ //
+
+ template <typename B>
+ DispatcherBase<B>::
+ ~DispatcherBase ()
+ {
+ }
+
+ //@@ merge after dropping VC6
+ //
+ //
+ template <typename B>
+ void DispatcherBase<B>::
+ dispatch (B& n)
+ {
+ LevelMap levels;
+
+ //@@ VC6
+ ExtendedTypeInfo const& ti = extended_type_info (n);
+
+ unsigned long max = compute_levels (ti, 0, levels);
+
+
+ //wcerr << "starting dispatch process for "
+ // << typeid (n).name () << " with "
+ // << max << " levels" << endl;
+
+ for (unsigned long l = 0; l < max + 1; ++l)
+ {
+ TypeInfoSet dispatched;
+
+ for (typename LevelMap::const_iterator
+ i (levels.begin ()), e (levels.end ());
+ i != e; ++i)
+ {
+ if (i->second == l)
+ {
+ typename TraversalMap::const_iterator v (
+ traversal_map_.find (i->first.type_id ()));
+
+ if (v != traversal_map_.end ())
+ {
+ //wcerr << "dispatching traversers for "
+ // << typeid (n).name () << " as "
+ // << i->first.type_id ().name () << endl;
+
+ //@@ VC6
+ Traversers const& traversers = v->second;
+ for (typename Traversers::const_iterator
+ ti (traversers.begin ()), te (traversers.end ());
+ ti != te; ++ti)
+ {
+ (*ti)->trampoline (n);
+ }
+
+ flatten_tree (i->first, dispatched);
+ }
+ }
+ }
+
+ // Remove traversed types from the level map.
+ //
+ //@@ VC6
+ {
+ for (typename TypeInfoSet::const_iterator i = dispatched.begin ();
+ i != dispatched.end ();
+ ++i)
+ {
+ levels.erase (*i);
+ }
+ }
+ }
+ }
+
+ template <typename B>
+ void DispatcherBase<B>::
+ dispatch (B const& n)
+ {
+ LevelMap levels;
+
+ //@@ VC6
+ ExtendedTypeInfo const& ti = extended_type_info (n);
+
+ unsigned long max = compute_levels (ti, 0, levels);
+
+
+ //wcerr << "starting dispatch process for "
+ // << typeid (n).name () << " with "
+ // << max << " levels" << endl;
+
+ //wcerr << "using " << &traversal_map_ << " traversal map" << endl;
+
+ for (unsigned long l = 0; l < max + 1; ++l)
+ {
+ TypeInfoSet dispatched;
+
+ for (typename LevelMap::const_iterator
+ i (levels.begin ()), e (levels.end ());
+ i != e; ++i)
+ {
+ if (i->second == l)
+ {
+ typename TraversalMap::const_iterator v (
+ traversal_map_.find (i->first.type_id ()));
+
+ if (v != traversal_map_.end ())
+ {
+ //wcerr << "dispatching traversers for "
+ // << typeid (n).name () << " as "
+ // << i->first.type_id ().name () << endl;
+
+ //@@ VC6
+ Traversers const& traversers = v->second;
+ for (typename Traversers::const_iterator
+ ti (traversers.begin ()), te (traversers.end ());
+ ti != te; ++ti)
+ {
+ (*ti)->trampoline (n);
+ }
+
+ flatten_tree (i->first, dispatched);
+ }
+ }
+ }
+
+ // Remove traversed types from the level map.
+ //
+ //@@ VC6
+ {
+ for (typename TypeInfoSet::const_iterator i = dispatched.begin ();
+ i != dispatched.end ();
+ ++i)
+ {
+ levels.erase (*i);
+ }
+ }
+ }
+ }
+
+ template <typename B>
+ unsigned long DispatcherBase<B>::
+ compute_levels (ExtendedTypeInfo const& ti,
+ unsigned long cur,
+ LevelMap& map)
+ {
+ unsigned long ret = cur;
+
+ if (map.find (ti) == map.end () || map[ti] < cur) map[ti] = cur;
+
+ for (ExtendedTypeInfo::BaseIterator i = ti.begin_base ();
+ i != ti.end_base ();
+ i++)
+ {
+ unsigned long t = compute_levels (i->type_info (), cur + 1, map);
+ if (t > ret) ret = t;
+ }
+
+ return ret;
+ }
+
+ template <typename B>
+ void DispatcherBase<B>::
+ flatten_tree (ExtendedTypeInfo const& ti, TypeInfoSet& set)
+ {
+ set.insert (ti);
+
+ for (ExtendedTypeInfo::BaseIterator i = ti.begin_base ();
+ i != ti.end_base ();
+ i++)
+ {
+ flatten_tree (i->type_info (), set);
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.hpp
new file mode 100644
index 00000000000..6fdd82f6f3e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.hpp
@@ -0,0 +1,81 @@
+// file : XSCRT/Writer.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XSCRT_WRITER_HPP
+#define XSCRT_WRITER_HPP
+
+#include <stack>
+#include <string>
+
+#include "XSCRT/XML.hpp"
+
+namespace XSCRT
+{
+ template <typename C>
+ class Writer
+ {
+ public:
+ Writer (XML::Element<C>& e)
+ : attr__ (0)
+ {
+ push_ (e);
+ }
+
+ protected:
+ // This c-tor should never be called.
+ //
+ Writer ()
+ {
+ abort ();
+ }
+
+ public:
+ void
+ push_ (XML::Element<C> const& e)
+ {
+ stack_.push (e);
+ }
+
+ void
+ pop_ ()
+ {
+ stack_.pop ();
+ }
+
+ XML::Element<C>&
+ top_ ()
+ {
+ return stack_.top ();
+ }
+
+ public:
+ XML::Attribute<C>*
+ attr_ ()
+ {
+ return attr__;
+ }
+
+ void
+ attr_ (XML::Attribute<C>* a)
+ {
+ attr__ = a;
+ }
+
+ private:
+ std::stack<XML::Element<C> > stack_;
+
+ XML::Attribute<C>* attr__;
+
+ private:
+ Writer (Writer const&);
+
+ void
+ operator= (Writer const&);
+ };
+}
+
+#include <XSCRT/Writer.ipp>
+#include <XSCRT/Writer.tpp>
+
+#endif // XSCRT_WRITER_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.ipp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.ipp
new file mode 100644
index 00000000000..caa9fc99235
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.ipp
@@ -0,0 +1,7 @@
+// file : XSCRT/Writer.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.tpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.tpp
new file mode 100644
index 00000000000..8593004687f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/Writer.tpp
@@ -0,0 +1,7 @@
+// file : XSCRT/Writer.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.hpp
new file mode 100644
index 00000000000..d0fdd30affe
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.hpp
@@ -0,0 +1,493 @@
+// file : XSCRT/XML.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+
+#ifndef XSCRT_XML_HPP
+#define XSCRT_XML_HPP
+
+#include <string>
+
+#include <xercesc/dom/DOM.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+namespace XSCRT
+{
+ namespace XML
+ {
+ //@@ VC6
+ //
+ template <typename C>
+ std::basic_string<C>
+ transcode (XMLCh const* s, C*);
+
+ template <typename C>
+ XMLCh*
+ transcode (std::basic_string<C> const& s);
+
+ //
+ //
+ //
+ class string
+ {
+ public :
+ template <typename C>
+ string (std::basic_string<C> const& s)
+ : s_ (XSCRT::XML::transcode<C> (s))
+ {
+ }
+
+ template <typename C>
+ string (C const* s)
+ : s_ (XSCRT::XML::transcode<C> (s))
+ {
+ }
+
+ ~string ()
+ {
+ delete[] s_;
+ }
+
+ XMLCh const*
+ c_str () const
+ {
+ return s_;
+ }
+
+ private :
+ XMLCh* s_;
+ };
+
+
+ template <>
+ inline
+ std::basic_string<char>
+ transcode<char> (XMLCh const* s, char*)
+ {
+ if (s == 0) return std::basic_string<char> ();
+
+ char* buf = xercesc::XMLString::transcode (s);
+
+ std::basic_string<char> r (buf);
+
+ xercesc::XMLString::release (&buf);
+
+ return r;
+ }
+
+ template <>
+ inline
+ std::basic_string<wchar_t>
+ transcode<wchar_t> (XMLCh const* s, wchar_t*)
+ {
+ if (s == 0) return std::basic_string<wchar_t> ();
+
+ // std::wcerr << s << std::endl;
+
+ std::basic_string<wchar_t> r (xercesc::XMLString::stringLen (s), L'0');
+
+ for (std::size_t i (0); *s != XMLCh (0); ++s, ++i)
+ {
+ r[i] = *s;
+ }
+
+ return r;
+ }
+
+ template <>
+ inline
+ XMLCh*
+ transcode (std::basic_string<char> const& s)
+ {
+ return xercesc::XMLString::transcode (s.c_str ());
+ }
+
+ template <>
+ inline
+ XMLCh*
+ transcode (std::basic_string<wchar_t> const& s)
+ {
+ //@@ VC6
+ std::size_t l = s.length ();
+
+ //@@ VC6
+ XMLCh* r = new XMLCh[l + 1];
+ XMLCh* ir = r;
+
+ for (std::size_t i (0); i < l; ++ir, ++i)
+ {
+ *ir = static_cast<XMLCh>(s[i]);
+ //std::wcerr << s[i] << "->" << *ir << std::endl;
+ }
+
+ *ir = XMLCh (0);
+
+ // std::wcerr << r << std::endl;
+
+ return r;
+ }
+
+
+ template <typename C>
+ class Element;
+
+ template <typename C>
+ std::basic_string<C>
+ ns_prefix (std::basic_string<C> const& ns, Element<C> const& e);
+
+ // Casting helpers, made necessary by the Xerces project's braindead
+ // avoidance of RTTI.
+ template <typename DERIVED> struct dom_traits;
+
+ // Specializations for different node types
+ template <>
+ struct dom_traits<xercesc::DOMElement *>
+ {
+ static const xercesc::DOMNode::NodeType node_type = xercesc::DOMNode::ELEMENT_NODE;
+ };
+
+ template <>
+ struct dom_traits<xercesc::DOMAttr *>
+ {
+ static const xercesc::DOMNode::NodeType node_type = xercesc::DOMNode::ATTRIBUTE_NODE;
+ };
+
+ template <typename DERIVED_PTR>
+ DERIVED_PTR dom_cast (xercesc::DOMNode *node)
+ {
+ DERIVED_PTR elem = 0;
+ if ((node != 0) &&
+ (node->getNodeType () == dom_traits<DERIVED_PTR>::node_type))
+ {
+ elem = reinterpret_cast <DERIVED_PTR> (node);
+ }
+ return elem;
+ }
+
+ template <typename C>
+ class Element
+ {
+ typedef std::basic_string<C> string_;
+
+ public:
+ Element (xercesc::DOMElement const* e)
+ : e_ (0),
+ ce_ (e),
+ name_ (transcode<C> (e->getLocalName (), 0)),
+ namespace__ (transcode<C> (e->getNamespaceURI (), 0))
+ {
+ }
+
+ Element (xercesc::DOMElement* e)
+ : e_ (e),
+ ce_ (e),
+ name_ (transcode<C> (e->getLocalName (), 0)),
+ namespace__ (transcode<C> (e->getNamespaceURI (), 0))
+ {
+ }
+
+ Element (string_ const& name, Element& parent)
+ : e_ (0),
+ ce_ (0),
+ name_ (name)
+ {
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ e_ = doc->createElement (string (name).c_str ());
+
+ parent.dom_element ()->appendChild (e_);
+
+ ce_ = e_;
+ }
+
+ Element (string_ const& name, string_ const& ns, Element& parent)
+ : e_ (0),
+ ce_ (0),
+ name_ (name),
+ namespace__ (ns)
+ {
+ string_ prefix (ns_prefix (ns, parent));
+
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ e_ = doc->createElementNS (
+ string (ns).c_str (),
+ string (prefix.empty ()
+ ? name
+ : prefix + string_ (1, ':') + name).c_str ());
+
+ parent.dom_element ()->appendChild (e_);
+
+ ce_ = e_;
+ }
+
+ public:
+ string_
+ name () const
+ {
+ return name_;
+ }
+
+ string_
+ namespace_ () const
+ {
+ return namespace__;
+ }
+
+ public:
+ Element<C>
+ parent () const
+ {
+ return dom_cast <xercesc::DOMElement const*>(ce_->getParentNode ());
+ }
+
+ public:
+ string_
+ value () const
+ {
+ return XML::transcode<C> (dom_element ()->getTextContent (), 0);
+ }
+
+ void
+ value (string_ const& v)
+ {
+ xercesc::DOMText* text (
+ dom_element ()->getOwnerDocument ()->createTextNode(
+ string (v).c_str ()));
+
+ dom_element ()->appendChild (text);
+ }
+
+ public:
+ string_
+ operator[] (string_ const& s) const
+ {
+ //@@ VC6
+ XMLCh const* value = ce_->getAttribute (string (s).c_str ());
+
+ return transcode<C> (value, 0);
+ }
+
+ public:
+ xercesc::DOMElement const*
+ dom_element () const
+ {
+ return ce_;
+ }
+
+ xercesc::DOMElement*
+ dom_element ()
+ {
+ return e_;
+ }
+
+ private:
+ xercesc::DOMElement* e_;
+ xercesc::DOMElement const* ce_;
+
+ string_ name_;
+ string_ namespace__;
+ };
+
+
+ template <typename C>
+ class Attribute
+ {
+ typedef std::basic_string<C> string_;
+
+ public:
+ Attribute (xercesc::DOMAttr const* a)
+ : a_ (0),
+ ca_ (a),
+ name_ (transcode<C> (a->getLocalName (), 0)),
+ value_ (transcode<C> (a->getValue (), 0))
+ {
+ }
+
+ Attribute (xercesc::DOMAttr* a)
+ : a_ (a),
+ ca_ (a),
+ name_ (transcode<C> (a->getLocalName (), 0)),
+ value_ (transcode<C> (a->getValue (), 0))
+ {
+ }
+
+ Attribute (string_ const& name,
+ string_ const& v,
+ Element<C>& parent)
+ : a_ (0),
+ ca_ (0),
+ name_ (name),
+ value_ ()
+ {
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ a_ = doc->createAttribute (string (name).c_str ());
+
+ value (v);
+
+ parent.dom_element ()->setAttributeNode (a_);
+
+ ca_ = a_;
+ }
+
+ Attribute (string_ const& name,
+ string_ const& ns,
+ string_ const& v,
+ Element<C>& parent)
+ : a_ (0),
+ ca_ (0),
+ name_ (name),
+ value_ ()
+ {
+ string_ prefix (ns_prefix (ns, parent));
+
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ a_ = doc->createAttributeNS (
+ string (ns).c_str (),
+ string (prefix.empty ()
+ ? name
+ : prefix + string_ (1, ':') + name).c_str ());
+
+ value (v);
+
+ parent.dom_element ()->setAttributeNodeNS (a_);
+
+ ca_ = a_;
+ }
+
+ string_
+ name () const
+ {
+ return name_;
+ }
+
+ string_
+ value () const
+ {
+ return value_;
+ }
+
+ void
+ value (string_ const& v)
+ {
+ value_ = v;
+ a_->setValue (string (v).c_str ());
+ }
+
+ public:
+ xercesc::DOMAttr const*
+ dom_attribute () const
+ {
+ return ca_;
+ }
+
+ xercesc::DOMAttr*
+ dom_attribute ()
+ {
+ return a_;
+ }
+
+ private:
+
+ private:
+ xercesc::DOMAttr* a_;
+ xercesc::DOMAttr const* ca_;
+
+ string_ name_;
+ string_ value_;
+ };
+
+ template <typename C>
+ std::basic_string<C>
+ prefix (std::basic_string<C> const& n)
+ {
+ std::size_t i (0);
+ while (i < n.length () && n[i] != ':') ++i;
+
+ //std::wcerr << "prefix " << n << " "
+ // << std::wstring (n, i == n.length () ? i : 0, i) << std::endl;
+
+ return std::basic_string<C> (n, i == n.length () ? i : 0, i);
+ }
+
+ template <typename C>
+ std::basic_string<C>
+ uq_name (std::basic_string<C> const& n)
+ {
+ std::size_t i (0);
+ while (i < n.length () && n[i] != ':') ++i;
+
+ return std::basic_string<C> (n.c_str () + (i == n.length () ? 0 : i + 1));
+ }
+
+ template <typename C>
+ std::basic_string<C>
+ ns_name (Element<C> const& e, std::basic_string<C> const& n)
+ {
+ std::basic_string<C> wp (prefix (n));
+
+ //@@ VC6
+ XMLCh const* xns = e.dom_element ()->lookupNamespaceURI (
+ wp.empty () ? 0 : string (wp).c_str ());
+
+
+ std::basic_string<C> ns (
+ xns ? transcode<C> (xns, 0) : std::basic_string<C> ());
+
+ return ns;
+
+ }
+
+ template <typename C>
+ std::basic_string<C>
+ fq_name (Element<C> const& e, std::basic_string<C> const& n)
+ {
+ std::basic_string<C> ns (ns_name (e, n));
+ std::basic_string<C> un (uq_name (n));
+
+ return ns.empty () ? un : (ns + C ('#') + un);
+ }
+
+ class no_prefix {};
+
+ template <typename C>
+ std::basic_string<C>
+ ns_prefix (std::basic_string<C> const& ns, Element<C> const& e)
+ {
+ string xns (ns);
+
+#if defined(XERCES_VERSION_MAJOR) && XERCES_VERSION_MAJOR > 2
+ XMLCh const* p (e.dom_element ()->lookupPrefix (xns.c_str ()));
+#else
+ XMLCh const* p (e.dom_element ()->lookupNamespacePrefix (xns.c_str (), false));
+#endif
+
+ if (p == 0)
+ {
+ bool r (e.dom_element ()->isDefaultNamespace (xns.c_str ()));
+
+ if (r)
+ {
+ return std::basic_string<C> ();
+ }
+ else
+ {
+ throw no_prefix ();
+ }
+ }
+
+ return transcode<C> (p, 0);
+ }
+ }
+}
+
+#include "XSCRT/XML.ipp"
+#include "XSCRT/XML.tpp"
+
+#endif // XSCRT_XML_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.ipp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.ipp
new file mode 100644
index 00000000000..4a7b83efd1c
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.ipp
@@ -0,0 +1,7 @@
+// file : XSCRT/XML.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.tpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.tpp
new file mode 100644
index 00000000000..63023a05d28
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XML.tpp
@@ -0,0 +1,7 @@
+// file : XSCRT/XML.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+namespace XSCRT
+{
+}
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp
new file mode 100644
index 00000000000..95575267eee
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp
@@ -0,0 +1,588 @@
+// file : XSCRT/XMLSchema.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id$
+
+#ifndef XSCRT_XMLSCHEMA_HPP
+#define XSCRT_XMLSCHEMA_HPP
+
+#include <string>
+// #include <iostream> //@@ tmp
+
+#include "XSCRT/Elements.hpp"
+
+namespace XMLSchema
+{
+ typedef XSCRT::FundamentalType<signed char> byte;
+ typedef XSCRT::FundamentalType<unsigned char> unsignedByte;
+
+ typedef XSCRT::FundamentalType<short> short_;
+ typedef XSCRT::FundamentalType<unsigned short> unsignedShort;
+
+ typedef XSCRT::FundamentalType<int> int_;
+ typedef XSCRT::FundamentalType<unsigned int> unsignedInt;
+
+ typedef XSCRT::FundamentalType<long long> long_;
+ typedef XSCRT::FundamentalType<unsigned long long> unsignedLong;
+
+ //@@ It would be nice to use some arbitrary-length integer class.
+ //
+ typedef long_ decimal;
+ typedef decimal integer;
+ typedef integer nonPositiveInteger;
+ typedef integer nonNegativeInteger;
+ typedef nonNegativeInteger positiveInteger;
+ typedef nonPositiveInteger negativeInteger;
+
+
+ typedef XSCRT::FundamentalType<bool> boolean;
+
+ typedef XSCRT::FundamentalType<float> float_;
+ typedef XSCRT::FundamentalType<double> double_;
+
+ // Just to make GCC 3.3 and other broken compilers shutup.
+ //
+ using std::basic_string;
+
+
+ template <typename C>
+ class string : public XSCRT::Type, public basic_string<C>
+ {
+ protected:
+ typedef basic_string<C> Base__ ;
+
+ public:
+
+ //@@ VC6 does not inject XSCRT::Type into the scope so I have
+ // to qualify it all the time.
+ //
+
+ string ()
+ {
+ }
+
+ string (XSCRT::XML::Element<C> const& e)
+ : Base__ (e.value ())
+ {
+ }
+
+ string (XSCRT::XML::Attribute<C> const& a)
+ : Base__ (a.value ())
+ {
+ }
+
+ string (Base__ const& x)
+ : Base__ (x)
+ {
+ }
+
+ string&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class normalizedString : public string<C>
+ {
+ protected:
+ typedef typename string<C>::Base__ Base__;
+
+ public:
+ normalizedString ()
+ {
+ }
+
+ normalizedString (XSCRT::XML::Element<C> const& e)
+ : string<C> (e)
+ {
+ }
+
+ normalizedString (XSCRT::XML::Attribute<C> const& a)
+ : string<C> (a)
+ {
+ }
+
+ normalizedString (Base__ const& x)
+ : string<C> (x)
+ {
+ }
+
+ normalizedString&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class token : public normalizedString<C>
+ {
+ protected:
+ typedef typename normalizedString<C>::Base__ Base__;
+
+ public:
+ token ()
+ {
+ }
+
+ token (XSCRT::XML::Element<C> const& e)
+ : normalizedString<C> (e)
+ {
+ }
+
+ token (XSCRT::XML::Attribute<C> const& a)
+ : normalizedString<C> (a)
+ {
+ }
+
+ token (Base__ const& x)
+ : normalizedString<C> (x)
+ {
+ }
+
+ token&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NMTOKEN : public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ NMTOKEN ()
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ NMTOKEN (Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ NMTOKEN&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class Name: public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ Name()
+ {
+ }
+
+ Name(XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ Name(XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ Name(Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ Name&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NCName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ NCName()
+ {
+ }
+
+ NCName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ NCName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ NCName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ NCName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class QName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ QName()
+ {
+ }
+
+ QName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ QName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ QName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ QName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ struct IdentityProvider : XSCRT::IdentityProvider
+ {
+ IdentityProvider (NCName<C> const& id)
+ : id_ (id)
+ {
+ }
+
+ virtual bool
+ before (XSCRT::IdentityProvider const& y) const
+ {
+ return id_ < dynamic_cast<IdentityProvider const&> (y).id_;
+ }
+
+ private:
+ NCName<C> const& id_;
+
+ private:
+ IdentityProvider (IdentityProvider const&);
+
+ IdentityProvider&
+ operator= (IdentityProvider const&);
+ };
+
+
+ template <typename C>
+ class ID : public NCName<C>
+ {
+ protected:
+ typedef typename NCName<C>::Base__ Base__;
+
+ public:
+ ~ID()
+ {
+ unregister_id ();
+ }
+
+ ID ()
+ : id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Element<C> const& e)
+ : NCName<C> (e), id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Attribute<C> const& a)
+ : NCName<C> (a), id_provider_ (*this)
+ {
+ }
+
+ ID (ID const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID (Base__ const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID&
+ operator= (Base__ const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = x;
+
+ register_id ();
+
+ return *this;
+ }
+
+ ID&
+ operator= (ID const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = static_cast<NCName<C> const&>(x);
+
+ register_id ();
+
+ return *this;
+ }
+
+ public:
+ using NCName<C>::container;
+
+ virtual void
+ container (XSCRT::Type* c)
+ {
+ unregister_id ();
+
+ NCName<C>::container (c);
+
+ register_id ();
+ }
+
+ private:
+ using NCName<C>::empty;
+ using NCName<C>::root;
+
+ void
+ register_id ()
+ {
+ if (container () != this && !empty ())
+ {
+ //std::wcerr << "registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ container ()->register_id (id_provider_, container ());
+ }
+ }
+
+ void
+ unregister_id ()
+ {
+ if (container () != this && !empty ())
+ {
+ //std::wcerr << "un-registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ container ()->unregister_id (id_provider_);
+ }
+ }
+
+ private:
+ IdentityProvider<C> id_provider_;
+ };
+
+ struct IDREF_Base : public XSCRT::Type
+ {
+ virtual XSCRT::Type*
+ get () const = 0;
+ };
+
+ template <typename C>
+ class IDREF : public IDREF_Base
+ {
+ public:
+ IDREF ()
+ : id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Element<C> const& e)
+ : id_ (e), id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Attribute<C> const& a)
+ : id_ (a), id_provider_ (id_)
+ {
+ }
+
+ IDREF (IDREF const& x)
+ : id_ (x.id_), id_provider_ (id_)
+ {
+ }
+
+ IDREF (basic_string<C> const& id)
+ : id_ (id), id_provider_ (id_)
+ {
+ }
+
+ IDREF&
+ operator= (IDREF const& x)
+ {
+ id_ = x.id_;
+ return *this;
+ }
+
+ IDREF&
+ operator= (basic_string<C> const& x)
+ {
+ id_ = x;
+ return *this;
+ }
+
+ public:
+ XSCRT::Type*
+ operator-> () const
+ {
+ return get ();
+ }
+
+ XSCRT::Type&
+ operator* () const
+ {
+ return *(get ());
+ }
+
+ virtual XSCRT::Type*
+ get () const
+ {
+ if (!id_.empty () && container () != this)
+ {
+ return root ()->lookup_id (id_provider_);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ // conversion to bool
+ //
+ typedef XSCRT::Type* (IDREF::*bool_convertable)() const;
+
+ operator bool_convertable () const
+ {
+ return get () ? &IDREF::operator-> : 0;
+ }
+
+ private:
+ NCName<C> id_;
+ IdentityProvider<C> id_provider_;
+ };
+}
+
+// Traversal
+//
+//
+
+#include "XSCRT/Traversal.hpp"
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+ template <typename T>
+ struct Traverser : XSCRT::Traversal::Traverser<T, XSCRT::Type>,
+ XSCRT::Traversal::Traverser<IDREF_Base, XSCRT::Type>
+ {
+ typedef
+ T
+ Type;
+
+ virtual void
+ traverse (XMLSchema::IDREF_Base& r)
+ {
+ if (r.get ()) dispatch (*(r.get ()));
+ }
+ };
+
+ typedef Traverser<byte> byte;
+ typedef Traverser<unsignedByte> unsignedByte;
+
+ typedef Traverser<short_> short_;
+ typedef Traverser<unsignedShort> unsignedShort;
+
+ typedef Traverser<int_> int_;
+ typedef Traverser<unsignedInt> unsignedInt;
+
+ typedef Traverser<long_> long_;
+ typedef Traverser<unsignedLong> unsignedLong;
+
+ typedef Traverser<boolean> boolean;
+
+ typedef Traverser<float_> float_;
+ typedef Traverser<double_> double_;
+
+ template <typename C>
+ struct string : Traverser<XMLSchema::string<C> >
+ {
+ };
+
+ template <typename C>
+ struct ID : Traverser<XMLSchema::ID<C> >
+ {
+ };
+ }
+}
+
+
+// ExtendedTypeInfo for XML Schema types
+//
+//
+
+#include "XSCRT/ExtendedTypeInfo.hpp"
+
+namespace XMLSchema
+{
+ template <typename C>
+ struct TypeInfoInitializer
+ {
+ TypeInfoInitializer (XSCRT::ExtendedTypeInfoMap&);
+ };
+}
+
+#include "XSCRT/XMLSchema.ipp"
+#include "XSCRT/XMLSchema.tpp"
+
+#endif // XSCRT_XMLSCHEMA_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/XSC_XML_Handlers_Export.h b/modules/CIAO/DAnCE/Config_Handlers/XSC_XML_Handlers_Export.h
new file mode 100644
index 00000000000..82272eb6c05
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/XSC_XML_Handlers_Export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl XSC_XML_Handlers
+// ------------------------------
+#ifndef XSC_XML_HANDLERS_EXPORT_H
+#define XSC_XML_HANDLERS_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (XSC_XML_HANDLERS_HAS_DLL)
+# define XSC_XML_HANDLERS_HAS_DLL 1
+#endif /* ! XSC_XML_HANDLERS_HAS_DLL */
+
+#if defined (XSC_XML_HANDLERS_HAS_DLL) && (XSC_XML_HANDLERS_HAS_DLL == 1)
+# if defined (XSC_XML_HANDLERS_BUILD_DLL)
+# define XSC_XML_Handlers_Export ACE_Proper_Export_Flag
+# define XSC_XML_HANDLERS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define XSC_XML_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* XSC_XML_HANDLERS_BUILD_DLL */
+# define XSC_XML_Handlers_Export ACE_Proper_Import_Flag
+# define XSC_XML_HANDLERS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define XSC_XML_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* XSC_XML_HANDLERS_BUILD_DLL */
+#else /* XSC_XML_HANDLERS_HAS_DLL == 1 */
+# define XSC_XML_Handlers_Export
+# define XSC_XML_HANDLERS_SINGLETON_DECLARATION(T)
+# define XSC_XML_HANDLERS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* XSC_XML_HANDLERS_HAS_DLL == 1 */
+
+// Set XSC_XML_HANDLERS_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (XSC_XML_HANDLERS_NTRACE)
+# if (ACE_NTRACE == 1)
+# define XSC_XML_HANDLERS_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define XSC_XML_HANDLERS_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !XSC_XML_HANDLERS_NTRACE */
+
+#if (XSC_XML_HANDLERS_NTRACE == 1)
+# define XSC_XML_HANDLERS_TRACE(X)
+#else /* (XSC_XML_HANDLERS_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define XSC_XML_HANDLERS_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (XSC_XML_HANDLERS_NTRACE == 1) */
+
+#endif /* XSC_XML_HANDLERS_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ccd.cpp b/modules/CIAO/DAnCE/Config_Handlers/ccd.cpp
new file mode 100644
index 00000000000..8ed4163970b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ccd.cpp
@@ -0,0 +1,1502 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "ccd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // ComponentInterfaceDescription
+ //
+
+ ComponentInterfaceDescription::
+ ComponentInterfaceDescription ()
+ :
+ ::XSCRT::Type (),
+ regulator__ ()
+ {
+ }
+
+ ComponentInterfaceDescription::
+ ComponentInterfaceDescription (ComponentInterfaceDescription const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ specificType_ (s.specificType_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.specificType_) : 0),
+ supportedType_ (s.supportedType_),
+ idlFile_ (s.idlFile_),
+ configProperty_ (s.configProperty_),
+ port_ (s.port_),
+ property_ (s.property_),
+ infoProperty_ (s.infoProperty_),
+ contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (specificType_.get ()) specificType_->container (this);
+ if (contentLocation_.get ()) contentLocation_->container (this);
+ if (href_.get ()) href_->container (this);
+ }
+
+ ComponentInterfaceDescription& ComponentInterfaceDescription::
+ operator= (ComponentInterfaceDescription const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.specificType_.get ())
+ specificType (*(s.specificType_));
+ else
+ specificType_.reset (0);
+
+ supportedType_ = s.supportedType_;
+
+ idlFile_ = s.idlFile_;
+
+ configProperty_ = s.configProperty_;
+
+ port_ = s.port_;
+
+ property_ = s.property_;
+
+ infoProperty_ = s.infoProperty_;
+
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ComponentInterfaceDescription
+ //
+ bool ComponentInterfaceDescription::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentInterfaceDescription::
+ label () const
+ {
+ return *label_;
+ }
+
+ void ComponentInterfaceDescription::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // ComponentInterfaceDescription
+ //
+ bool ComponentInterfaceDescription::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentInterfaceDescription::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void ComponentInterfaceDescription::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // ComponentInterfaceDescription
+ //
+ bool ComponentInterfaceDescription::
+ specificType_p () const
+ {
+ return specificType_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentInterfaceDescription::
+ specificType () const
+ {
+ return *specificType_;
+ }
+
+ void ComponentInterfaceDescription::
+ specificType (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (specificType_.get ())
+ {
+ *specificType_ = e;
+ }
+
+ else
+ {
+ specificType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ specificType_->container (this);
+ }
+ }
+
+ // ComponentInterfaceDescription
+ //
+ ComponentInterfaceDescription::supportedType_iterator ComponentInterfaceDescription::
+ begin_supportedType ()
+ {
+ return supportedType_.begin ();
+ }
+
+ ComponentInterfaceDescription::supportedType_iterator ComponentInterfaceDescription::
+ end_supportedType ()
+ {
+ return supportedType_.end ();
+ }
+
+ ComponentInterfaceDescription::supportedType_const_iterator ComponentInterfaceDescription::
+ begin_supportedType () const
+ {
+ return supportedType_.begin ();
+ }
+
+ ComponentInterfaceDescription::supportedType_const_iterator ComponentInterfaceDescription::
+ end_supportedType () const
+ {
+ return supportedType_.end ();
+ }
+
+ void ComponentInterfaceDescription::
+ add_supportedType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ supportedType_.push_back (e);
+ }
+
+ size_t ComponentInterfaceDescription::
+ count_supportedType(void) const
+ {
+ return supportedType_.size ();
+ }
+
+ // ComponentInterfaceDescription
+ //
+ ComponentInterfaceDescription::idlFile_iterator ComponentInterfaceDescription::
+ begin_idlFile ()
+ {
+ return idlFile_.begin ();
+ }
+
+ ComponentInterfaceDescription::idlFile_iterator ComponentInterfaceDescription::
+ end_idlFile ()
+ {
+ return idlFile_.end ();
+ }
+
+ ComponentInterfaceDescription::idlFile_const_iterator ComponentInterfaceDescription::
+ begin_idlFile () const
+ {
+ return idlFile_.begin ();
+ }
+
+ ComponentInterfaceDescription::idlFile_const_iterator ComponentInterfaceDescription::
+ end_idlFile () const
+ {
+ return idlFile_.end ();
+ }
+
+ void ComponentInterfaceDescription::
+ add_idlFile (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ idlFile_.push_back (e);
+ }
+
+ size_t ComponentInterfaceDescription::
+ count_idlFile(void) const
+ {
+ return idlFile_.size ();
+ }
+
+ // ComponentInterfaceDescription
+ //
+ ComponentInterfaceDescription::configProperty_iterator ComponentInterfaceDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ ComponentInterfaceDescription::configProperty_iterator ComponentInterfaceDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ ComponentInterfaceDescription::configProperty_const_iterator ComponentInterfaceDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ ComponentInterfaceDescription::configProperty_const_iterator ComponentInterfaceDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void ComponentInterfaceDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t ComponentInterfaceDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // ComponentInterfaceDescription
+ //
+ ComponentInterfaceDescription::port_iterator ComponentInterfaceDescription::
+ begin_port ()
+ {
+ return port_.begin ();
+ }
+
+ ComponentInterfaceDescription::port_iterator ComponentInterfaceDescription::
+ end_port ()
+ {
+ return port_.end ();
+ }
+
+ ComponentInterfaceDescription::port_const_iterator ComponentInterfaceDescription::
+ begin_port () const
+ {
+ return port_.begin ();
+ }
+
+ ComponentInterfaceDescription::port_const_iterator ComponentInterfaceDescription::
+ end_port () const
+ {
+ return port_.end ();
+ }
+
+ void ComponentInterfaceDescription::
+ add_port (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > const& e)
+ {
+ port_.push_back (e);
+ }
+
+ size_t ComponentInterfaceDescription::
+ count_port(void) const
+ {
+ return port_.size ();
+ }
+
+ // ComponentInterfaceDescription
+ //
+ ComponentInterfaceDescription::property_iterator ComponentInterfaceDescription::
+ begin_property ()
+ {
+ return property_.begin ();
+ }
+
+ ComponentInterfaceDescription::property_iterator ComponentInterfaceDescription::
+ end_property ()
+ {
+ return property_.end ();
+ }
+
+ ComponentInterfaceDescription::property_const_iterator ComponentInterfaceDescription::
+ begin_property () const
+ {
+ return property_.begin ();
+ }
+
+ ComponentInterfaceDescription::property_const_iterator ComponentInterfaceDescription::
+ end_property () const
+ {
+ return property_.end ();
+ }
+
+ void ComponentInterfaceDescription::
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > const& e)
+ {
+ property_.push_back (e);
+ }
+
+ size_t ComponentInterfaceDescription::
+ count_property(void) const
+ {
+ return property_.size ();
+ }
+
+ // ComponentInterfaceDescription
+ //
+ ComponentInterfaceDescription::infoProperty_iterator ComponentInterfaceDescription::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ ComponentInterfaceDescription::infoProperty_iterator ComponentInterfaceDescription::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ ComponentInterfaceDescription::infoProperty_const_iterator ComponentInterfaceDescription::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ ComponentInterfaceDescription::infoProperty_const_iterator ComponentInterfaceDescription::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void ComponentInterfaceDescription::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t ComponentInterfaceDescription::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // ComponentInterfaceDescription
+ //
+ bool ComponentInterfaceDescription::
+ contentLocation_p () const
+ {
+ return contentLocation_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentInterfaceDescription::
+ contentLocation () const
+ {
+ return *contentLocation_;
+ }
+
+ void ComponentInterfaceDescription::
+ contentLocation (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (contentLocation_.get ())
+ {
+ *contentLocation_ = e;
+ }
+
+ else
+ {
+ contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ contentLocation_->container (this);
+ }
+ }
+
+ // ComponentInterfaceDescription
+ //
+ bool ComponentInterfaceDescription::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentInterfaceDescription::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& ComponentInterfaceDescription::
+ href ()
+ {
+ return *href_;
+ }
+
+ void ComponentInterfaceDescription::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // ComponentInterfaceDescription
+ //
+
+ ComponentInterfaceDescription::
+ ComponentInterfaceDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("specificType"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ specificType (t);
+ }
+
+ else if (n == ACE_TEXT("supportedType"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_supportedType (t);
+ }
+
+ else if (n == ACE_TEXT("idlFile"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_idlFile (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("port"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentPortDescription (e));
+ add_port (t);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentPropertyDescription (e));
+ add_property (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else if (n == ACE_TEXT("contentLocation"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ contentLocation (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct ComponentInterfaceDescriptionTypeInfoInitializer
+ {
+ ComponentInterfaceDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentInterfaceDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentInterfaceDescriptionTypeInfoInitializer ComponentInterfaceDescriptionTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // ComponentInterfaceDescription
+ //
+ //
+
+ void ComponentInterfaceDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.specificType_p ()) specificType (o);
+ else specificType_none (o);
+ supportedType (o);
+ idlFile (o);
+ configProperty (o);
+ port (o);
+ property (o);
+ infoProperty (o);
+ if (o.contentLocation_p ()) contentLocation (o);
+ else contentLocation_none (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ComponentInterfaceDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.specificType_p ()) specificType (o);
+ else specificType_none (o);
+ supportedType (o);
+ idlFile (o);
+ configProperty (o);
+ port (o);
+ property (o);
+ infoProperty (o);
+ if (o.contentLocation_p ()) contentLocation (o);
+ else contentLocation_none (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ComponentInterfaceDescription::
+ pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ComponentInterfaceDescription::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ComponentInterfaceDescription::
+ label_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ label_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ComponentInterfaceDescription::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ComponentInterfaceDescription::
+ UUID_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ UUID_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ specificType (Type& o)
+ {
+ dispatch (o.specificType ());
+ }
+
+ void ComponentInterfaceDescription::
+ specificType (Type const& o)
+ {
+ dispatch (o.specificType ());
+ }
+
+ void ComponentInterfaceDescription::
+ specificType_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ specificType_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+
+ if (b != e)
+ {
+ supportedType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) supportedType_next (o);
+ }
+
+ supportedType_post (o);
+ }
+
+ else supportedType_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+
+ if (b != e)
+ {
+ supportedType_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) supportedType_next (o);
+ }
+
+ supportedType_post (o);
+ }
+
+ else supportedType_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_next (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_next (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_post (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::idlFile_iterator b (o.begin_idlFile()), e (o.end_idlFile());
+
+ if (b != e)
+ {
+ idlFile_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) idlFile_next (o);
+ }
+
+ idlFile_post (o);
+ }
+
+ else idlFile_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::idlFile_const_iterator b (o.begin_idlFile()), e (o.end_idlFile());
+
+ if (b != e)
+ {
+ idlFile_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) idlFile_next (o);
+ }
+
+ idlFile_post (o);
+ }
+
+ else idlFile_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_next (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_next (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_post (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::port_iterator b (o.begin_port()), e (o.end_port());
+
+ if (b != e)
+ {
+ port_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) port_next (o);
+ }
+
+ port_post (o);
+ }
+
+ else port_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ port (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::port_const_iterator b (o.begin_port()), e (o.end_port());
+
+ if (b != e)
+ {
+ port_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) port_next (o);
+ }
+
+ port_post (o);
+ }
+
+ else port_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ port_pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_next (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_next (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_post (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ port_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::property_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ property (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
+
+ if (b != e)
+ {
+ property_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) property_next (o);
+ }
+
+ property_post (o);
+ }
+
+ else property_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ property_pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_next (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_next (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_post (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ property_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ contentLocation (Type& o)
+ {
+ dispatch (o.contentLocation ());
+ }
+
+ void ComponentInterfaceDescription::
+ contentLocation (Type const& o)
+ {
+ dispatch (o.contentLocation ());
+ }
+
+ void ComponentInterfaceDescription::
+ contentLocation_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ contentLocation_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ComponentInterfaceDescription::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ComponentInterfaceDescription::
+ href_none (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ href_none (Type const&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ post (Type&)
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // ComponentInterfaceDescription
+ //
+ //
+
+ ComponentInterfaceDescription::
+ ComponentInterfaceDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentInterfaceDescription::
+ ComponentInterfaceDescription ()
+ {
+ }
+
+ void ComponentInterfaceDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentInterfaceDescription::traverse (o);
+ }
+
+ void ComponentInterfaceDescription::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::ComponentInterfaceDescription::label (o);
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::ComponentInterfaceDescription::UUID (o);
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ specificType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("specificType"), top_ ()));
+ Traversal::ComponentInterfaceDescription::specificType (o);
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("supportedType"), top_ ()));
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_next (Type const& o)
+ {
+ supportedType_post (o);
+ supportedType_pre (o);
+ }
+
+ void ComponentInterfaceDescription::
+ supportedType_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("idlFile"), top_ ()));
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_next (Type const& o)
+ {
+ idlFile_post (o);
+ idlFile_pre (o);
+ }
+
+ void ComponentInterfaceDescription::
+ idlFile_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void ComponentInterfaceDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ port_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("port"), top_ ()));
+ }
+
+ void ComponentInterfaceDescription::
+ port_next (Type const& o)
+ {
+ port_post (o);
+ port_pre (o);
+ }
+
+ void ComponentInterfaceDescription::
+ port_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ property_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ }
+
+ void ComponentInterfaceDescription::
+ property_next (Type const& o)
+ {
+ property_post (o);
+ property_pre (o);
+ }
+
+ void ComponentInterfaceDescription::
+ property_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void ComponentInterfaceDescription::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ contentLocation (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("contentLocation"), top_ ()));
+ Traversal::ComponentInterfaceDescription::contentLocation (o);
+ pop_ ();
+ }
+
+ void ComponentInterfaceDescription::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ComponentInterfaceDescription::href (o);
+ attr_ (0);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/ccd.hpp b/modules/CIAO/DAnCE/Config_Handlers/ccd.hpp
new file mode 100644
index 00000000000..7bb0245ead6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/ccd.hpp
@@ -0,0 +1,741 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef CCD_HPP
+#define CCD_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentInterfaceDescription;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "Basic_Deployment_Data.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export ComponentInterfaceDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentInterfaceDescription, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // specificType
+ //
+ public:
+ bool specificType_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& specificType () const;
+ void specificType (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > specificType_;
+
+ // supportedType
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator supportedType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator supportedType_const_iterator;
+ supportedType_iterator begin_supportedType ();
+ supportedType_iterator end_supportedType ();
+ supportedType_const_iterator begin_supportedType () const;
+ supportedType_const_iterator end_supportedType () const;
+ void add_supportedType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* supportedType_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_supportedType (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > supportedType_;
+
+ // idlFile
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator idlFile_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator idlFile_const_iterator;
+ idlFile_iterator begin_idlFile ();
+ idlFile_iterator end_idlFile ();
+ idlFile_const_iterator begin_idlFile () const;
+ idlFile_const_iterator end_idlFile () const;
+ void add_idlFile ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* idlFile_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_idlFile (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > idlFile_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // port
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > >::iterator port_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > >::const_iterator port_const_iterator;
+ port_iterator begin_port ();
+ port_iterator end_port ();
+ port_const_iterator begin_port () const;
+ port_const_iterator end_port () const;
+ void add_port ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* port_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_port (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > > port_;
+
+ // property
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > >::const_iterator property_const_iterator;
+ property_iterator begin_property ();
+ property_iterator end_property ();
+ property_const_iterator begin_property () const;
+ property_const_iterator end_property () const;
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* property_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_property (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > > property_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // contentLocation
+ //
+ public:
+ bool contentLocation_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& contentLocation () const;
+ void contentLocation (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > contentLocation_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ public:
+ ComponentInterfaceDescription ();
+
+ ComponentInterfaceDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentInterfaceDescription (ComponentInterfaceDescription const& s);
+
+ ComponentInterfaceDescription&
+ operator= (ComponentInterfaceDescription const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export ComponentInterfaceDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentInterfaceDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ specificType (Type&);
+
+ virtual void
+ specificType (Type const&);
+
+ virtual void
+ specificType_none (Type&);
+
+ virtual void
+ specificType_none (Type const&);
+
+ virtual void
+ supportedType (Type&);
+
+ virtual void
+ supportedType (Type const&);
+
+ virtual void
+ supportedType_pre (Type&);
+
+ virtual void
+ supportedType_pre (Type const&);
+
+ virtual void
+ supportedType_next (Type&);
+
+ virtual void
+ supportedType_next (Type const&);
+
+ virtual void
+ supportedType_post (Type&);
+
+ virtual void
+ supportedType_post (Type const&);
+
+ virtual void
+ supportedType_none (Type&);
+
+ virtual void
+ supportedType_none (Type const&);
+
+ virtual void
+ idlFile (Type&);
+
+ virtual void
+ idlFile (Type const&);
+
+ virtual void
+ idlFile_pre (Type&);
+
+ virtual void
+ idlFile_pre (Type const&);
+
+ virtual void
+ idlFile_next (Type&);
+
+ virtual void
+ idlFile_next (Type const&);
+
+ virtual void
+ idlFile_post (Type&);
+
+ virtual void
+ idlFile_post (Type const&);
+
+ virtual void
+ idlFile_none (Type&);
+
+ virtual void
+ idlFile_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ port (Type&);
+
+ virtual void
+ port (Type const&);
+
+ virtual void
+ port_pre (Type&);
+
+ virtual void
+ port_pre (Type const&);
+
+ virtual void
+ port_next (Type&);
+
+ virtual void
+ port_next (Type const&);
+
+ virtual void
+ port_post (Type&);
+
+ virtual void
+ port_post (Type const&);
+
+ virtual void
+ port_none (Type&);
+
+ virtual void
+ port_none (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ property_pre (Type&);
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type&);
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type&);
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ property_none (Type&);
+
+ virtual void
+ property_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ contentLocation (Type&);
+
+ virtual void
+ contentLocation (Type const&);
+
+ virtual void
+ contentLocation_none (Type&);
+
+ virtual void
+ contentLocation_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct ComponentInterfaceDescription : Traversal::ComponentInterfaceDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentInterfaceDescription Type;
+ ComponentInterfaceDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ specificType (Type &o)
+ {
+ this->specificType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ specificType (Type const&);
+
+ virtual void
+ supportedType_pre (Type &o)
+ {
+ this->supportedType_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_pre (Type const&);
+
+ virtual void
+ supportedType_next (Type &o)
+ {
+ this->supportedType_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_next (Type const&);
+
+ virtual void
+ supportedType_post (Type &o)
+ {
+ this->supportedType_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ supportedType_post (Type const&);
+
+ virtual void
+ idlFile_pre (Type &o)
+ {
+ this->idlFile_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ idlFile_pre (Type const&);
+
+ virtual void
+ idlFile_next (Type &o)
+ {
+ this->idlFile_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ idlFile_next (Type const&);
+
+ virtual void
+ idlFile_post (Type &o)
+ {
+ this->idlFile_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ idlFile_post (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ port_pre (Type &o)
+ {
+ this->port_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ port_pre (Type const&);
+
+ virtual void
+ port_next (Type &o)
+ {
+ this->port_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ port_next (Type const&);
+
+ virtual void
+ port_post (Type &o)
+ {
+ this->port_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ port_post (Type const&);
+
+ virtual void
+ property_pre (Type &o)
+ {
+ this->property_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_pre (Type const&);
+
+ virtual void
+ property_next (Type &o)
+ {
+ this->property_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_next (Type const&);
+
+ virtual void
+ property_post (Type &o)
+ {
+ this->property_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ contentLocation (Type &o)
+ {
+ this->contentLocation (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ contentLocation (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ protected:
+ ComponentInterfaceDescription ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // CCD_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cdd.cpp b/modules/CIAO/DAnCE/Config_Handlers/cdd.cpp
new file mode 100644
index 00000000000..4dc1a9d9915
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cdd.cpp
@@ -0,0 +1,3334 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "cdd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // Domain
+ //
+
+ Domain::
+ Domain (::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& node__)
+ :
+ ::XSCRT::Type (),
+ node_ (node__),
+ regulator__ ()
+ {
+ }
+
+ Domain::
+ Domain (Domain const& s)
+ :
+ ::XSCRT::Type (),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ node_ (s.node_),
+ interconnect_ (s.interconnect_),
+ bridge_ (s.bridge_),
+ sharedResource_ (s.sharedResource_),
+ infoProperty_ (s.infoProperty_),
+ regulator__ ()
+ {
+ if (UUID_.get ()) UUID_->container (this);
+ if (label_.get ()) label_->container (this);
+ }
+
+ Domain& Domain::
+ operator= (Domain const& s)
+ {
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ node_ = s.node_;
+
+ interconnect_ = s.interconnect_;
+
+ bridge_ = s.bridge_;
+
+ sharedResource_ = s.sharedResource_;
+
+ infoProperty_ = s.infoProperty_;
+
+ return *this;
+ }
+
+
+ // Domain
+ //
+ bool Domain::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Domain::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void Domain::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // Domain
+ //
+ bool Domain::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Domain::
+ label () const
+ {
+ return *label_;
+ }
+
+ void Domain::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // Domain
+ //
+ Domain::node_iterator Domain::
+ begin_node ()
+ {
+ return node_.begin ();
+ }
+
+ Domain::node_iterator Domain::
+ end_node ()
+ {
+ return node_.end ();
+ }
+
+ Domain::node_const_iterator Domain::
+ begin_node () const
+ {
+ return node_.begin ();
+ }
+
+ Domain::node_const_iterator Domain::
+ end_node () const
+ {
+ return node_.end ();
+ }
+
+ void Domain::
+ add_node (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& e)
+ {
+ node_.push_back (e);
+ }
+
+ size_t Domain::
+ count_node(void) const
+ {
+ return node_.size ();
+ }
+
+ // Domain
+ //
+ Domain::interconnect_iterator Domain::
+ begin_interconnect ()
+ {
+ return interconnect_.begin ();
+ }
+
+ Domain::interconnect_iterator Domain::
+ end_interconnect ()
+ {
+ return interconnect_.end ();
+ }
+
+ Domain::interconnect_const_iterator Domain::
+ begin_interconnect () const
+ {
+ return interconnect_.begin ();
+ }
+
+ Domain::interconnect_const_iterator Domain::
+ end_interconnect () const
+ {
+ return interconnect_.end ();
+ }
+
+ void Domain::
+ add_interconnect (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& e)
+ {
+ interconnect_.push_back (e);
+ }
+
+ size_t Domain::
+ count_interconnect(void) const
+ {
+ return interconnect_.size ();
+ }
+
+ // Domain
+ //
+ Domain::bridge_iterator Domain::
+ begin_bridge ()
+ {
+ return bridge_.begin ();
+ }
+
+ Domain::bridge_iterator Domain::
+ end_bridge ()
+ {
+ return bridge_.end ();
+ }
+
+ Domain::bridge_const_iterator Domain::
+ begin_bridge () const
+ {
+ return bridge_.begin ();
+ }
+
+ Domain::bridge_const_iterator Domain::
+ end_bridge () const
+ {
+ return bridge_.end ();
+ }
+
+ void Domain::
+ add_bridge (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& e)
+ {
+ bridge_.push_back (e);
+ }
+
+ size_t Domain::
+ count_bridge(void) const
+ {
+ return bridge_.size ();
+ }
+
+ // Domain
+ //
+ Domain::sharedResource_iterator Domain::
+ begin_sharedResource ()
+ {
+ return sharedResource_.begin ();
+ }
+
+ Domain::sharedResource_iterator Domain::
+ end_sharedResource ()
+ {
+ return sharedResource_.end ();
+ }
+
+ Domain::sharedResource_const_iterator Domain::
+ begin_sharedResource () const
+ {
+ return sharedResource_.begin ();
+ }
+
+ Domain::sharedResource_const_iterator Domain::
+ end_sharedResource () const
+ {
+ return sharedResource_.end ();
+ }
+
+ void Domain::
+ add_sharedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& e)
+ {
+ sharedResource_.push_back (e);
+ }
+
+ size_t Domain::
+ count_sharedResource(void) const
+ {
+ return sharedResource_.size ();
+ }
+
+ // Domain
+ //
+ Domain::infoProperty_iterator Domain::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ Domain::infoProperty_iterator Domain::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ Domain::infoProperty_const_iterator Domain::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ Domain::infoProperty_const_iterator Domain::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void Domain::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t Domain::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+
+ // Bridge
+ //
+
+ Bridge::
+ Bridge (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > const& connect__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ connect_ (connect__),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Bridge::
+ Bridge (Bridge const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ connect_ (s.connect_),
+ resource_ (s.resource_),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (label_.get ()) label_->container (this);
+ }
+
+ Bridge& Bridge::
+ operator= (Bridge const& s)
+ {
+ name (*s.name_);
+
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ connect_ = s.connect_;
+
+ resource_ = s.resource_;
+
+ return *this;
+ }
+
+
+ // Bridge
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Bridge::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Bridge::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Bridge
+ //
+ bool Bridge::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Bridge::
+ label () const
+ {
+ return *label_;
+ }
+
+ void Bridge::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // Bridge
+ //
+ Bridge::connect_iterator Bridge::
+ begin_connect ()
+ {
+ return connect_.begin ();
+ }
+
+ Bridge::connect_iterator Bridge::
+ end_connect ()
+ {
+ return connect_.end ();
+ }
+
+ Bridge::connect_const_iterator Bridge::
+ begin_connect () const
+ {
+ return connect_.begin ();
+ }
+
+ Bridge::connect_const_iterator Bridge::
+ end_connect () const
+ {
+ return connect_.end ();
+ }
+
+ void Bridge::
+ add_connect (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& e)
+ {
+ connect_.push_back (e);
+ }
+
+ size_t Bridge::
+ count_connect(void) const
+ {
+ return connect_.size ();
+ }
+
+ // Bridge
+ //
+ Bridge::resource_iterator Bridge::
+ begin_resource ()
+ {
+ return resource_.begin ();
+ }
+
+ Bridge::resource_iterator Bridge::
+ end_resource ()
+ {
+ return resource_.end ();
+ }
+
+ Bridge::resource_const_iterator Bridge::
+ begin_resource () const
+ {
+ return resource_.begin ();
+ }
+
+ Bridge::resource_const_iterator Bridge::
+ end_resource () const
+ {
+ return resource_.end ();
+ }
+
+ void Bridge::
+ add_resource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& e)
+ {
+ resource_.push_back (e);
+ }
+
+ size_t Bridge::
+ count_resource(void) const
+ {
+ return resource_.size ();
+ }
+
+
+ // Interconnect
+ //
+
+ Interconnect::
+ Interconnect (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& connect__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ connect_ (connect__),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Interconnect::
+ Interconnect (Interconnect const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ connection_ (s.connection_),
+ connect_ (s.connect_),
+ resource_ (s.resource_),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (label_.get ()) label_->container (this);
+ }
+
+ Interconnect& Interconnect::
+ operator= (Interconnect const& s)
+ {
+ name (*s.name_);
+
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ connection_ = s.connection_;
+
+ connect_ = s.connect_;
+
+ resource_ = s.resource_;
+
+ return *this;
+ }
+
+
+ // Interconnect
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Interconnect::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Interconnect::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Interconnect
+ //
+ bool Interconnect::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Interconnect::
+ label () const
+ {
+ return *label_;
+ }
+
+ void Interconnect::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // Interconnect
+ //
+ Interconnect::connection_iterator Interconnect::
+ begin_connection ()
+ {
+ return connection_.begin ();
+ }
+
+ Interconnect::connection_iterator Interconnect::
+ end_connection ()
+ {
+ return connection_.end ();
+ }
+
+ Interconnect::connection_const_iterator Interconnect::
+ begin_connection () const
+ {
+ return connection_.begin ();
+ }
+
+ Interconnect::connection_const_iterator Interconnect::
+ end_connection () const
+ {
+ return connection_.end ();
+ }
+
+ void Interconnect::
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& e)
+ {
+ connection_.push_back (e);
+ }
+
+ size_t Interconnect::
+ count_connection(void) const
+ {
+ return connection_.size ();
+ }
+
+ // Interconnect
+ //
+ Interconnect::connect_iterator Interconnect::
+ begin_connect ()
+ {
+ return connect_.begin ();
+ }
+
+ Interconnect::connect_iterator Interconnect::
+ end_connect ()
+ {
+ return connect_.end ();
+ }
+
+ Interconnect::connect_const_iterator Interconnect::
+ begin_connect () const
+ {
+ return connect_.begin ();
+ }
+
+ Interconnect::connect_const_iterator Interconnect::
+ end_connect () const
+ {
+ return connect_.end ();
+ }
+
+ void Interconnect::
+ add_connect (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& e)
+ {
+ connect_.push_back (e);
+ }
+
+ size_t Interconnect::
+ count_connect(void) const
+ {
+ return connect_.size ();
+ }
+
+ // Interconnect
+ //
+ Interconnect::resource_iterator Interconnect::
+ begin_resource ()
+ {
+ return resource_.begin ();
+ }
+
+ Interconnect::resource_iterator Interconnect::
+ end_resource ()
+ {
+ return resource_.end ();
+ }
+
+ Interconnect::resource_const_iterator Interconnect::
+ begin_resource () const
+ {
+ return resource_.begin ();
+ }
+
+ Interconnect::resource_const_iterator Interconnect::
+ end_resource () const
+ {
+ return resource_.end ();
+ }
+
+ void Interconnect::
+ add_resource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& e)
+ {
+ resource_.push_back (e);
+ }
+
+ size_t Interconnect::
+ count_resource(void) const
+ {
+ return resource_.size ();
+ }
+
+
+ // Node
+ //
+
+ Node::
+ Node (::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ Node::
+ Node (Node const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ connection_ (s.connection_),
+ sharedResource_ (s.sharedResource_),
+ resource_ (s.resource_),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (label_.get ()) label_->container (this);
+ }
+
+ Node& Node::
+ operator= (Node const& s)
+ {
+ name (*s.name_);
+
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ connection_ = s.connection_;
+
+ sharedResource_ = s.sharedResource_;
+
+ resource_ = s.resource_;
+
+ return *this;
+ }
+
+
+ // Node
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& Node::
+ name () const
+ {
+ return *name_;
+ }
+
+ void Node::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // Node
+ //
+ bool Node::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& Node::
+ label () const
+ {
+ return *label_;
+ }
+
+ void Node::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // Node
+ //
+ Node::connection_iterator Node::
+ begin_connection ()
+ {
+ return connection_.begin ();
+ }
+
+ Node::connection_iterator Node::
+ end_connection ()
+ {
+ return connection_.end ();
+ }
+
+ Node::connection_const_iterator Node::
+ begin_connection () const
+ {
+ return connection_.begin ();
+ }
+
+ Node::connection_const_iterator Node::
+ end_connection () const
+ {
+ return connection_.end ();
+ }
+
+ void Node::
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& e)
+ {
+ connection_.push_back (e);
+ }
+
+ size_t Node::
+ count_connection(void) const
+ {
+ return connection_.size ();
+ }
+
+ // Node
+ //
+ Node::sharedResource_iterator Node::
+ begin_sharedResource ()
+ {
+ return sharedResource_.begin ();
+ }
+
+ Node::sharedResource_iterator Node::
+ end_sharedResource ()
+ {
+ return sharedResource_.end ();
+ }
+
+ Node::sharedResource_const_iterator Node::
+ begin_sharedResource () const
+ {
+ return sharedResource_.begin ();
+ }
+
+ Node::sharedResource_const_iterator Node::
+ end_sharedResource () const
+ {
+ return sharedResource_.end ();
+ }
+
+ void Node::
+ add_sharedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& e)
+ {
+ sharedResource_.push_back (e);
+ }
+
+ size_t Node::
+ count_sharedResource(void) const
+ {
+ return sharedResource_.size ();
+ }
+
+ // Node
+ //
+ Node::resource_iterator Node::
+ begin_resource ()
+ {
+ return resource_.begin ();
+ }
+
+ Node::resource_iterator Node::
+ end_resource ()
+ {
+ return resource_.end ();
+ }
+
+ Node::resource_const_iterator Node::
+ begin_resource () const
+ {
+ return resource_.begin ();
+ }
+
+ Node::resource_const_iterator Node::
+ end_resource () const
+ {
+ return resource_.end ();
+ }
+
+ void Node::
+ add_resource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& e)
+ {
+ resource_.push_back (e);
+ }
+
+ size_t Node::
+ count_resource(void) const
+ {
+ return resource_.size ();
+ }
+
+
+ // SharedResource
+ //
+
+ SharedResource::
+ SharedResource (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType__,
+ ::CIAO::Config_Handlers::Node const& node__,
+ ::CIAO::Config_Handlers::SatisfierProperty const& property__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (resourceType__)),
+ node_ (new ::CIAO::Config_Handlers::Node (node__)),
+ property_ (new ::CIAO::Config_Handlers::SatisfierProperty (property__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ resourceType_->container (this);
+ node_->container (this);
+ property_->container (this);
+ }
+
+ SharedResource::
+ SharedResource (SharedResource const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceType_)),
+ node_ (new ::CIAO::Config_Handlers::Node (*s.node_)),
+ property_ (new ::CIAO::Config_Handlers::SatisfierProperty (*s.property_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ resourceType_->container (this);
+ node_->container (this);
+ property_->container (this);
+ }
+
+ SharedResource& SharedResource::
+ operator= (SharedResource const& s)
+ {
+ name (*s.name_);
+
+ resourceType (*s.resourceType_);
+
+ node (*s.node_);
+
+ property (*s.property_);
+
+ return *this;
+ }
+
+
+ // SharedResource
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& SharedResource::
+ name () const
+ {
+ return *name_;
+ }
+
+ void SharedResource::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // SharedResource
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& SharedResource::
+ resourceType () const
+ {
+ return *resourceType_;
+ }
+
+ void SharedResource::
+ resourceType (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *resourceType_ = e;
+ }
+
+ // SharedResource
+ //
+ ::CIAO::Config_Handlers::Node const& SharedResource::
+ node () const
+ {
+ return *node_;
+ }
+
+ void SharedResource::
+ node (::CIAO::Config_Handlers::Node const& e)
+ {
+ *node_ = e;
+ }
+
+ // SharedResource
+ //
+ ::CIAO::Config_Handlers::SatisfierProperty const& SharedResource::
+ property () const
+ {
+ return *property_;
+ }
+
+ void SharedResource::
+ property (::CIAO::Config_Handlers::SatisfierProperty const& e)
+ {
+ *property_ = e;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // Domain
+ //
+
+ Domain::
+ Domain (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("node"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Node (e));
+ add_node (t);
+ }
+
+ else if (n == ACE_TEXT("interconnect"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Interconnect (e));
+ add_interconnect (t);
+ }
+
+ else if (n == ACE_TEXT("bridge"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Bridge (e));
+ add_bridge (t);
+ }
+
+ else if (n == ACE_TEXT("sharedResource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SharedResource (e));
+ add_sharedResource (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Bridge
+ //
+
+ Bridge::
+ Bridge (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("connect"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Interconnect (e));
+ add_connect (t);
+ }
+
+ else if (n == ACE_TEXT("resource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Resource (e));
+ add_resource (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Interconnect
+ //
+
+ Interconnect::
+ Interconnect (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("connection"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Bridge (e));
+ add_connection (t);
+ }
+
+ else if (n == ACE_TEXT("connect"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Node (e));
+ add_connect (t);
+ }
+
+ else if (n == ACE_TEXT("resource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Resource (e));
+ add_resource (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // Node
+ //
+
+ Node::
+ Node (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("connection"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Interconnect (e));
+ add_connection (t);
+ }
+
+ else if (n == ACE_TEXT("sharedResource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SharedResource (e));
+ add_sharedResource (t);
+ }
+
+ else if (n == ACE_TEXT("resource"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Resource (e));
+ add_resource (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // SharedResource
+ //
+
+ SharedResource::
+ SharedResource (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("resourceType"))
+ {
+ resourceType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ resourceType_->container (this);
+ }
+
+ else if (n == ACE_TEXT("node"))
+ {
+ node_ = ::std::auto_ptr< ::CIAO::Config_Handlers::Node > (new ::CIAO::Config_Handlers::Node (e));
+ node_->container (this);
+ }
+
+ else if (n == ACE_TEXT("property"))
+ {
+ property_ = ::std::auto_ptr< ::CIAO::Config_Handlers::SatisfierProperty > (new ::CIAO::Config_Handlers::SatisfierProperty (e));
+ property_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct DomainTypeInfoInitializer
+ {
+ DomainTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Domain));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ DomainTypeInfoInitializer DomainTypeInfoInitializer_;
+
+ struct BridgeTypeInfoInitializer
+ {
+ BridgeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Bridge));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ BridgeTypeInfoInitializer BridgeTypeInfoInitializer_;
+
+ struct InterconnectTypeInfoInitializer
+ {
+ InterconnectTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Interconnect));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ InterconnectTypeInfoInitializer InterconnectTypeInfoInitializer_;
+
+ struct NodeTypeInfoInitializer
+ {
+ NodeTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Node));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ NodeTypeInfoInitializer NodeTypeInfoInitializer_;
+
+ struct SharedResourceTypeInfoInitializer
+ {
+ SharedResourceTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SharedResource));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SharedResourceTypeInfoInitializer SharedResourceTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // Domain
+ //
+ //
+
+ void Domain::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ node (o);
+ interconnect (o);
+ bridge (o);
+ sharedResource (o);
+ infoProperty (o);
+ post (o);
+ }
+
+ void Domain::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ node (o);
+ interconnect (o);
+ bridge (o);
+ sharedResource (o);
+ infoProperty (o);
+ post (o);
+ }
+
+ void Domain::
+ pre (Type&)
+ {
+ }
+
+ void Domain::
+ pre (Type const&)
+ {
+ }
+
+ void Domain::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void Domain::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void Domain::
+ UUID_none (Type&)
+ {
+ }
+
+ void Domain::
+ UUID_none (Type const&)
+ {
+ }
+
+ void Domain::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Domain::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Domain::
+ label_none (Type&)
+ {
+ }
+
+ void Domain::
+ label_none (Type const&)
+ {
+ }
+
+ void Domain::
+ node (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::node_iterator b (o.begin_node()), e (o.end_node());
+
+ if (b != e)
+ {
+ node_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) node_next (o);
+ }
+
+ node_post (o);
+ }
+ }
+
+ void Domain::
+ node (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::node_const_iterator b (o.begin_node()), e (o.end_node());
+
+ if (b != e)
+ {
+ node_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) node_next (o);
+ }
+
+ node_post (o);
+ }
+ }
+
+ void Domain::
+ node_pre (Type&)
+ {
+ }
+
+ void Domain::
+ node_pre (Type const&)
+ {
+ }
+
+ void Domain::
+ node_next (Type&)
+ {
+ }
+
+ void Domain::
+ node_next (Type const&)
+ {
+ }
+
+ void Domain::
+ node_post (Type&)
+ {
+ }
+
+ void Domain::
+ node_post (Type const&)
+ {
+ }
+
+ void Domain::
+ interconnect (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::interconnect_iterator b (o.begin_interconnect()), e (o.end_interconnect());
+
+ if (b != e)
+ {
+ interconnect_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) interconnect_next (o);
+ }
+
+ interconnect_post (o);
+ }
+
+ else interconnect_none (o);
+ }
+
+ void Domain::
+ interconnect (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::interconnect_const_iterator b (o.begin_interconnect()), e (o.end_interconnect());
+
+ if (b != e)
+ {
+ interconnect_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) interconnect_next (o);
+ }
+
+ interconnect_post (o);
+ }
+
+ else interconnect_none (o);
+ }
+
+ void Domain::
+ interconnect_pre (Type&)
+ {
+ }
+
+ void Domain::
+ interconnect_pre (Type const&)
+ {
+ }
+
+ void Domain::
+ interconnect_next (Type&)
+ {
+ }
+
+ void Domain::
+ interconnect_next (Type const&)
+ {
+ }
+
+ void Domain::
+ interconnect_post (Type&)
+ {
+ }
+
+ void Domain::
+ interconnect_post (Type const&)
+ {
+ }
+
+ void Domain::
+ interconnect_none (Type&)
+ {
+ }
+
+ void Domain::
+ interconnect_none (Type const&)
+ {
+ }
+
+ void Domain::
+ bridge (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::bridge_iterator b (o.begin_bridge()), e (o.end_bridge());
+
+ if (b != e)
+ {
+ bridge_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) bridge_next (o);
+ }
+
+ bridge_post (o);
+ }
+
+ else bridge_none (o);
+ }
+
+ void Domain::
+ bridge (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::bridge_const_iterator b (o.begin_bridge()), e (o.end_bridge());
+
+ if (b != e)
+ {
+ bridge_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) bridge_next (o);
+ }
+
+ bridge_post (o);
+ }
+
+ else bridge_none (o);
+ }
+
+ void Domain::
+ bridge_pre (Type&)
+ {
+ }
+
+ void Domain::
+ bridge_pre (Type const&)
+ {
+ }
+
+ void Domain::
+ bridge_next (Type&)
+ {
+ }
+
+ void Domain::
+ bridge_next (Type const&)
+ {
+ }
+
+ void Domain::
+ bridge_post (Type&)
+ {
+ }
+
+ void Domain::
+ bridge_post (Type const&)
+ {
+ }
+
+ void Domain::
+ bridge_none (Type&)
+ {
+ }
+
+ void Domain::
+ bridge_none (Type const&)
+ {
+ }
+
+ void Domain::
+ sharedResource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::sharedResource_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+
+ if (b != e)
+ {
+ sharedResource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) sharedResource_next (o);
+ }
+
+ sharedResource_post (o);
+ }
+
+ else sharedResource_none (o);
+ }
+
+ void Domain::
+ sharedResource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::sharedResource_const_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+
+ if (b != e)
+ {
+ sharedResource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) sharedResource_next (o);
+ }
+
+ sharedResource_post (o);
+ }
+
+ else sharedResource_none (o);
+ }
+
+ void Domain::
+ sharedResource_pre (Type&)
+ {
+ }
+
+ void Domain::
+ sharedResource_pre (Type const&)
+ {
+ }
+
+ void Domain::
+ sharedResource_next (Type&)
+ {
+ }
+
+ void Domain::
+ sharedResource_next (Type const&)
+ {
+ }
+
+ void Domain::
+ sharedResource_post (Type&)
+ {
+ }
+
+ void Domain::
+ sharedResource_post (Type const&)
+ {
+ }
+
+ void Domain::
+ sharedResource_none (Type&)
+ {
+ }
+
+ void Domain::
+ sharedResource_none (Type const&)
+ {
+ }
+
+ void Domain::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void Domain::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Domain::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void Domain::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void Domain::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void Domain::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void Domain::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void Domain::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void Domain::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void Domain::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void Domain::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void Domain::
+ post (Type&)
+ {
+ }
+
+ void Domain::
+ post (Type const&)
+ {
+ }
+
+ // Bridge
+ //
+ //
+
+ void Bridge::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ connect (o);
+ resource (o);
+ post (o);
+ }
+
+ void Bridge::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ connect (o);
+ resource (o);
+ post (o);
+ }
+
+ void Bridge::
+ pre (Type&)
+ {
+ }
+
+ void Bridge::
+ pre (Type const&)
+ {
+ }
+
+ void Bridge::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Bridge::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Bridge::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Bridge::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Bridge::
+ label_none (Type&)
+ {
+ }
+
+ void Bridge::
+ label_none (Type const&)
+ {
+ }
+
+ void Bridge::
+ connect (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Bridge::connect_iterator b (o.begin_connect()), e (o.end_connect());
+
+ if (b != e)
+ {
+ connect_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connect_next (o);
+ }
+
+ connect_post (o);
+ }
+ }
+
+ void Bridge::
+ connect (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Bridge::connect_const_iterator b (o.begin_connect()), e (o.end_connect());
+
+ if (b != e)
+ {
+ connect_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connect_next (o);
+ }
+
+ connect_post (o);
+ }
+ }
+
+ void Bridge::
+ connect_pre (Type&)
+ {
+ }
+
+ void Bridge::
+ connect_pre (Type const&)
+ {
+ }
+
+ void Bridge::
+ connect_next (Type&)
+ {
+ }
+
+ void Bridge::
+ connect_next (Type const&)
+ {
+ }
+
+ void Bridge::
+ connect_post (Type&)
+ {
+ }
+
+ void Bridge::
+ connect_post (Type const&)
+ {
+ }
+
+ void Bridge::
+ resource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Bridge::resource_iterator b (o.begin_resource()), e (o.end_resource());
+
+ if (b != e)
+ {
+ resource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resource_next (o);
+ }
+
+ resource_post (o);
+ }
+
+ else resource_none (o);
+ }
+
+ void Bridge::
+ resource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Bridge::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
+
+ if (b != e)
+ {
+ resource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resource_next (o);
+ }
+
+ resource_post (o);
+ }
+
+ else resource_none (o);
+ }
+
+ void Bridge::
+ resource_pre (Type&)
+ {
+ }
+
+ void Bridge::
+ resource_pre (Type const&)
+ {
+ }
+
+ void Bridge::
+ resource_next (Type&)
+ {
+ }
+
+ void Bridge::
+ resource_next (Type const&)
+ {
+ }
+
+ void Bridge::
+ resource_post (Type&)
+ {
+ }
+
+ void Bridge::
+ resource_post (Type const&)
+ {
+ }
+
+ void Bridge::
+ resource_none (Type&)
+ {
+ }
+
+ void Bridge::
+ resource_none (Type const&)
+ {
+ }
+
+ void Bridge::
+ post (Type&)
+ {
+ }
+
+ void Bridge::
+ post (Type const&)
+ {
+ }
+
+ // Interconnect
+ //
+ //
+
+ void Interconnect::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ connection (o);
+ connect (o);
+ resource (o);
+ post (o);
+ }
+
+ void Interconnect::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ connection (o);
+ connect (o);
+ resource (o);
+ post (o);
+ }
+
+ void Interconnect::
+ pre (Type&)
+ {
+ }
+
+ void Interconnect::
+ pre (Type const&)
+ {
+ }
+
+ void Interconnect::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Interconnect::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Interconnect::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Interconnect::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Interconnect::
+ label_none (Type&)
+ {
+ }
+
+ void Interconnect::
+ label_none (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connection (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Interconnect::connection_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void Interconnect::
+ connection (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Interconnect::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void Interconnect::
+ connection_pre (Type&)
+ {
+ }
+
+ void Interconnect::
+ connection_pre (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connection_next (Type&)
+ {
+ }
+
+ void Interconnect::
+ connection_next (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connection_post (Type&)
+ {
+ }
+
+ void Interconnect::
+ connection_post (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connection_none (Type&)
+ {
+ }
+
+ void Interconnect::
+ connection_none (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connect (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Interconnect::connect_iterator b (o.begin_connect()), e (o.end_connect());
+
+ if (b != e)
+ {
+ connect_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connect_next (o);
+ }
+
+ connect_post (o);
+ }
+ }
+
+ void Interconnect::
+ connect (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Interconnect::connect_const_iterator b (o.begin_connect()), e (o.end_connect());
+
+ if (b != e)
+ {
+ connect_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connect_next (o);
+ }
+
+ connect_post (o);
+ }
+ }
+
+ void Interconnect::
+ connect_pre (Type&)
+ {
+ }
+
+ void Interconnect::
+ connect_pre (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connect_next (Type&)
+ {
+ }
+
+ void Interconnect::
+ connect_next (Type const&)
+ {
+ }
+
+ void Interconnect::
+ connect_post (Type&)
+ {
+ }
+
+ void Interconnect::
+ connect_post (Type const&)
+ {
+ }
+
+ void Interconnect::
+ resource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Interconnect::resource_iterator b (o.begin_resource()), e (o.end_resource());
+
+ if (b != e)
+ {
+ resource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resource_next (o);
+ }
+
+ resource_post (o);
+ }
+
+ else resource_none (o);
+ }
+
+ void Interconnect::
+ resource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Interconnect::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
+
+ if (b != e)
+ {
+ resource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resource_next (o);
+ }
+
+ resource_post (o);
+ }
+
+ else resource_none (o);
+ }
+
+ void Interconnect::
+ resource_pre (Type&)
+ {
+ }
+
+ void Interconnect::
+ resource_pre (Type const&)
+ {
+ }
+
+ void Interconnect::
+ resource_next (Type&)
+ {
+ }
+
+ void Interconnect::
+ resource_next (Type const&)
+ {
+ }
+
+ void Interconnect::
+ resource_post (Type&)
+ {
+ }
+
+ void Interconnect::
+ resource_post (Type const&)
+ {
+ }
+
+ void Interconnect::
+ resource_none (Type&)
+ {
+ }
+
+ void Interconnect::
+ resource_none (Type const&)
+ {
+ }
+
+ void Interconnect::
+ post (Type&)
+ {
+ }
+
+ void Interconnect::
+ post (Type const&)
+ {
+ }
+
+ // Node
+ //
+ //
+
+ void Node::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ connection (o);
+ sharedResource (o);
+ resource (o);
+ post (o);
+ }
+
+ void Node::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ connection (o);
+ sharedResource (o);
+ resource (o);
+ post (o);
+ }
+
+ void Node::
+ pre (Type&)
+ {
+ }
+
+ void Node::
+ pre (Type const&)
+ {
+ }
+
+ void Node::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Node::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void Node::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Node::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void Node::
+ label_none (Type&)
+ {
+ }
+
+ void Node::
+ label_none (Type const&)
+ {
+ }
+
+ void Node::
+ connection (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Node::connection_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void Node::
+ connection (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Node::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void Node::
+ connection_pre (Type&)
+ {
+ }
+
+ void Node::
+ connection_pre (Type const&)
+ {
+ }
+
+ void Node::
+ connection_next (Type&)
+ {
+ }
+
+ void Node::
+ connection_next (Type const&)
+ {
+ }
+
+ void Node::
+ connection_post (Type&)
+ {
+ }
+
+ void Node::
+ connection_post (Type const&)
+ {
+ }
+
+ void Node::
+ connection_none (Type&)
+ {
+ }
+
+ void Node::
+ connection_none (Type const&)
+ {
+ }
+
+ void Node::
+ sharedResource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Node::sharedResource_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+
+ if (b != e)
+ {
+ sharedResource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) sharedResource_next (o);
+ }
+
+ sharedResource_post (o);
+ }
+
+ else sharedResource_none (o);
+ }
+
+ void Node::
+ sharedResource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Node::sharedResource_const_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+
+ if (b != e)
+ {
+ sharedResource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) sharedResource_next (o);
+ }
+
+ sharedResource_post (o);
+ }
+
+ else sharedResource_none (o);
+ }
+
+ void Node::
+ sharedResource_pre (Type&)
+ {
+ }
+
+ void Node::
+ sharedResource_pre (Type const&)
+ {
+ }
+
+ void Node::
+ sharedResource_next (Type&)
+ {
+ }
+
+ void Node::
+ sharedResource_next (Type const&)
+ {
+ }
+
+ void Node::
+ sharedResource_post (Type&)
+ {
+ }
+
+ void Node::
+ sharedResource_post (Type const&)
+ {
+ }
+
+ void Node::
+ sharedResource_none (Type&)
+ {
+ }
+
+ void Node::
+ sharedResource_none (Type const&)
+ {
+ }
+
+ void Node::
+ resource (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Node::resource_iterator b (o.begin_resource()), e (o.end_resource());
+
+ if (b != e)
+ {
+ resource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resource_next (o);
+ }
+
+ resource_post (o);
+ }
+
+ else resource_none (o);
+ }
+
+ void Node::
+ resource (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::Node::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
+
+ if (b != e)
+ {
+ resource_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) resource_next (o);
+ }
+
+ resource_post (o);
+ }
+
+ else resource_none (o);
+ }
+
+ void Node::
+ resource_pre (Type&)
+ {
+ }
+
+ void Node::
+ resource_pre (Type const&)
+ {
+ }
+
+ void Node::
+ resource_next (Type&)
+ {
+ }
+
+ void Node::
+ resource_next (Type const&)
+ {
+ }
+
+ void Node::
+ resource_post (Type&)
+ {
+ }
+
+ void Node::
+ resource_post (Type const&)
+ {
+ }
+
+ void Node::
+ resource_none (Type&)
+ {
+ }
+
+ void Node::
+ resource_none (Type const&)
+ {
+ }
+
+ void Node::
+ post (Type&)
+ {
+ }
+
+ void Node::
+ post (Type const&)
+ {
+ }
+
+ // SharedResource
+ //
+ //
+
+ void SharedResource::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ node (o);
+ property (o);
+ post (o);
+ }
+
+ void SharedResource::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ resourceType (o);
+ node (o);
+ property (o);
+ post (o);
+ }
+
+ void SharedResource::
+ pre (Type&)
+ {
+ }
+
+ void SharedResource::
+ pre (Type const&)
+ {
+ }
+
+ void SharedResource::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void SharedResource::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void SharedResource::
+ resourceType (Type& o)
+ {
+ dispatch (o.resourceType ());
+ }
+
+ void SharedResource::
+ resourceType (Type const& o)
+ {
+ dispatch (o.resourceType ());
+ }
+
+ void SharedResource::
+ node (Type& o)
+ {
+ dispatch (o.node ());
+ }
+
+ void SharedResource::
+ node (Type const& o)
+ {
+ dispatch (o.node ());
+ }
+
+ void SharedResource::
+ property (Type& o)
+ {
+ dispatch (o.property ());
+ }
+
+ void SharedResource::
+ property (Type const& o)
+ {
+ dispatch (o.property ());
+ }
+
+ void SharedResource::
+ post (Type&)
+ {
+ }
+
+ void SharedResource::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // Domain
+ //
+ //
+
+ Domain::
+ Domain (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Domain::
+ Domain ()
+ {
+ }
+
+ void Domain::
+ traverse (Type const& o)
+ {
+ Traversal::Domain::traverse (o);
+ }
+
+ void Domain::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::Domain::UUID (o);
+ pop_ ();
+ }
+
+ void Domain::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::Domain::label (o);
+ pop_ ();
+ }
+
+ void Domain::
+ node_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("node"), top_ ()));
+ }
+
+ void Domain::
+ node_next (Type const& o)
+ {
+ node_post (o);
+ node_pre (o);
+ }
+
+ void Domain::
+ node_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Domain::
+ interconnect_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("interconnect"), top_ ()));
+ }
+
+ void Domain::
+ interconnect_next (Type const& o)
+ {
+ interconnect_post (o);
+ interconnect_pre (o);
+ }
+
+ void Domain::
+ interconnect_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Domain::
+ bridge_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("bridge"), top_ ()));
+ }
+
+ void Domain::
+ bridge_next (Type const& o)
+ {
+ bridge_post (o);
+ bridge_pre (o);
+ }
+
+ void Domain::
+ bridge_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Domain::
+ sharedResource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("sharedResource"), top_ ()));
+ }
+
+ void Domain::
+ sharedResource_next (Type const& o)
+ {
+ sharedResource_post (o);
+ sharedResource_pre (o);
+ }
+
+ void Domain::
+ sharedResource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Domain::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void Domain::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void Domain::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // Bridge
+ //
+ //
+
+ Bridge::
+ Bridge (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Bridge::
+ Bridge ()
+ {
+ }
+
+ void Bridge::
+ traverse (Type const& o)
+ {
+ Traversal::Bridge::traverse (o);
+ }
+
+ void Bridge::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Bridge::name (o);
+ pop_ ();
+ }
+
+ void Bridge::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::Bridge::label (o);
+ pop_ ();
+ }
+
+ void Bridge::
+ connect_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("connect"), top_ ()));
+ }
+
+ void Bridge::
+ connect_next (Type const& o)
+ {
+ connect_post (o);
+ connect_pre (o);
+ }
+
+ void Bridge::
+ connect_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Bridge::
+ resource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resource"), top_ ()));
+ }
+
+ void Bridge::
+ resource_next (Type const& o)
+ {
+ resource_post (o);
+ resource_pre (o);
+ }
+
+ void Bridge::
+ resource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // Interconnect
+ //
+ //
+
+ Interconnect::
+ Interconnect (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Interconnect::
+ Interconnect ()
+ {
+ }
+
+ void Interconnect::
+ traverse (Type const& o)
+ {
+ Traversal::Interconnect::traverse (o);
+ }
+
+ void Interconnect::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Interconnect::name (o);
+ pop_ ();
+ }
+
+ void Interconnect::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::Interconnect::label (o);
+ pop_ ();
+ }
+
+ void Interconnect::
+ connection_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("connection"), top_ ()));
+ }
+
+ void Interconnect::
+ connection_next (Type const& o)
+ {
+ connection_post (o);
+ connection_pre (o);
+ }
+
+ void Interconnect::
+ connection_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Interconnect::
+ connect_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("connect"), top_ ()));
+ }
+
+ void Interconnect::
+ connect_next (Type const& o)
+ {
+ connect_post (o);
+ connect_pre (o);
+ }
+
+ void Interconnect::
+ connect_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Interconnect::
+ resource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resource"), top_ ()));
+ }
+
+ void Interconnect::
+ resource_next (Type const& o)
+ {
+ resource_post (o);
+ resource_pre (o);
+ }
+
+ void Interconnect::
+ resource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // Node
+ //
+ //
+
+ Node::
+ Node (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Node::
+ Node ()
+ {
+ }
+
+ void Node::
+ traverse (Type const& o)
+ {
+ Traversal::Node::traverse (o);
+ }
+
+ void Node::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::Node::name (o);
+ pop_ ();
+ }
+
+ void Node::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::Node::label (o);
+ pop_ ();
+ }
+
+ void Node::
+ connection_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("connection"), top_ ()));
+ }
+
+ void Node::
+ connection_next (Type const& o)
+ {
+ connection_post (o);
+ connection_pre (o);
+ }
+
+ void Node::
+ connection_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Node::
+ sharedResource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("sharedResource"), top_ ()));
+ }
+
+ void Node::
+ sharedResource_next (Type const& o)
+ {
+ sharedResource_post (o);
+ sharedResource_pre (o);
+ }
+
+ void Node::
+ sharedResource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void Node::
+ resource_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resource"), top_ ()));
+ }
+
+ void Node::
+ resource_next (Type const& o)
+ {
+ resource_post (o);
+ resource_pre (o);
+ }
+
+ void Node::
+ resource_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // SharedResource
+ //
+ //
+
+ SharedResource::
+ SharedResource (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SharedResource::
+ SharedResource ()
+ {
+ }
+
+ void SharedResource::
+ traverse (Type const& o)
+ {
+ Traversal::SharedResource::traverse (o);
+ }
+
+ void SharedResource::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::SharedResource::name (o);
+ pop_ ();
+ }
+
+ void SharedResource::
+ resourceType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("resourceType"), top_ ()));
+ Traversal::SharedResource::resourceType (o);
+ pop_ ();
+ }
+
+ void SharedResource::
+ node (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("node"), top_ ()));
+ Traversal::SharedResource::node (o);
+ pop_ ();
+ }
+
+ void SharedResource::
+ property (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("property"), top_ ()));
+ Traversal::SharedResource::property (o);
+ pop_ ();
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cdd.hpp b/modules/CIAO/DAnCE/Config_Handlers/cdd.hpp
new file mode 100644
index 00000000000..37cf50be3db
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cdd.hpp
@@ -0,0 +1,1654 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef CDD_HPP
+#define CDD_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class Domain;
+ class Bridge;
+ class Interconnect;
+ class Node;
+ class SharedResource;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "Basic_Deployment_Data.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export Domain : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Domain, ACE_Null_Mutex > _ptr;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // node
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::iterator node_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::const_iterator node_const_iterator;
+ node_iterator begin_node ();
+ node_iterator end_node ();
+ node_const_iterator begin_node () const;
+ node_const_iterator end_node () const;
+ void add_node ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& );
+ XSCRT::Type* node_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_node (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > node_;
+
+ // interconnect
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::iterator interconnect_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::const_iterator interconnect_const_iterator;
+ interconnect_iterator begin_interconnect ();
+ interconnect_iterator end_interconnect ();
+ interconnect_const_iterator begin_interconnect () const;
+ interconnect_const_iterator end_interconnect () const;
+ void add_interconnect ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& );
+ XSCRT::Type* interconnect_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_interconnect (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > interconnect_;
+
+ // bridge
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::iterator bridge_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::const_iterator bridge_const_iterator;
+ bridge_iterator begin_bridge ();
+ bridge_iterator end_bridge ();
+ bridge_const_iterator begin_bridge () const;
+ bridge_const_iterator end_bridge () const;
+ void add_bridge ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& );
+ XSCRT::Type* bridge_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_bridge (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > > bridge_;
+
+ // sharedResource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::iterator sharedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::const_iterator sharedResource_const_iterator;
+ sharedResource_iterator begin_sharedResource ();
+ sharedResource_iterator end_sharedResource ();
+ sharedResource_const_iterator begin_sharedResource () const;
+ sharedResource_const_iterator end_sharedResource () const;
+ void add_sharedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& );
+ XSCRT::Type* sharedResource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_sharedResource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > > sharedResource_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ public:
+ Domain (::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& node__);
+
+ Domain (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Domain (Domain const& s);
+
+ Domain&
+ operator= (Domain const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Bridge : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Bridge, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // connect
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::iterator connect_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::const_iterator connect_const_iterator;
+ connect_iterator begin_connect ();
+ connect_iterator end_connect ();
+ connect_const_iterator begin_connect () const;
+ connect_const_iterator end_connect () const;
+ void add_connect ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& );
+ XSCRT::Type* connect_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_connect (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > connect_;
+
+ // resource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::iterator resource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::const_iterator resource_const_iterator;
+ resource_iterator begin_resource ();
+ resource_iterator end_resource ();
+ resource_const_iterator begin_resource () const;
+ resource_const_iterator end_resource () const;
+ void add_resource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& );
+ XSCRT::Type* resource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_resource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > > resource_;
+
+ public:
+ Bridge (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > const& connect__);
+
+ Bridge (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Bridge (Bridge const& s);
+
+ Bridge&
+ operator= (Bridge const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Interconnect : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Interconnect, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // connection
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
+ connection_iterator begin_connection ();
+ connection_iterator end_connection ();
+ connection_const_iterator begin_connection () const;
+ connection_const_iterator end_connection () const;
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& );
+ XSCRT::Type* connection_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_connection (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > > connection_;
+
+ // connect
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::iterator connect_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::const_iterator connect_const_iterator;
+ connect_iterator begin_connect ();
+ connect_iterator end_connect ();
+ connect_const_iterator begin_connect () const;
+ connect_const_iterator end_connect () const;
+ void add_connect ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& );
+ XSCRT::Type* connect_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_connect (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > connect_;
+
+ // resource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::iterator resource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::const_iterator resource_const_iterator;
+ resource_iterator begin_resource ();
+ resource_iterator end_resource ();
+ resource_const_iterator begin_resource () const;
+ resource_const_iterator end_resource () const;
+ void add_resource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& );
+ XSCRT::Type* resource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_resource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > > resource_;
+
+ public:
+ Interconnect (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& connect__);
+
+ Interconnect (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Interconnect (Interconnect const& s);
+
+ Interconnect&
+ operator= (Interconnect const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export Node : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Node, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // connection
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
+ connection_iterator begin_connection ();
+ connection_iterator end_connection ();
+ connection_const_iterator begin_connection () const;
+ connection_const_iterator end_connection () const;
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& );
+ XSCRT::Type* connection_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_connection (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > connection_;
+
+ // sharedResource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::iterator sharedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::const_iterator sharedResource_const_iterator;
+ sharedResource_iterator begin_sharedResource ();
+ sharedResource_iterator end_sharedResource ();
+ sharedResource_const_iterator begin_sharedResource () const;
+ sharedResource_const_iterator end_sharedResource () const;
+ void add_sharedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& );
+ XSCRT::Type* sharedResource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_sharedResource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > > sharedResource_;
+
+ // resource
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::iterator resource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::const_iterator resource_const_iterator;
+ resource_iterator begin_resource ();
+ resource_iterator end_resource ();
+ resource_const_iterator begin_resource () const;
+ resource_const_iterator end_resource () const;
+ void add_resource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& );
+ XSCRT::Type* resource_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_resource (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > > resource_;
+
+ public:
+ Node (::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ Node (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Node (Node const& s);
+
+ Node&
+ operator= (Node const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export SharedResource : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SharedResource, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // resourceType
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType () const;
+ void resourceType (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
+
+ // node
+ //
+ public:
+ ::CIAO::Config_Handlers::Node const& node () const;
+ void node (::CIAO::Config_Handlers::Node const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::Node > node_;
+
+ // property
+ //
+ public:
+ ::CIAO::Config_Handlers::SatisfierProperty const& property () const;
+ void property (::CIAO::Config_Handlers::SatisfierProperty const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::SatisfierProperty > property_;
+
+ public:
+ SharedResource (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& resourceType__,
+ ::CIAO::Config_Handlers::Node const& node__,
+ ::CIAO::Config_Handlers::SatisfierProperty const& property__);
+
+ SharedResource (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SharedResource (SharedResource const& s);
+
+ SharedResource&
+ operator= (SharedResource const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export Domain : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Domain >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ node (Type&);
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ node_pre (Type&);
+
+ virtual void
+ node_pre (Type const&);
+
+ virtual void
+ node_next (Type&);
+
+ virtual void
+ node_next (Type const&);
+
+ virtual void
+ node_post (Type&);
+
+ virtual void
+ node_post (Type const&);
+
+ virtual void
+ interconnect (Type&);
+
+ virtual void
+ interconnect (Type const&);
+
+ virtual void
+ interconnect_pre (Type&);
+
+ virtual void
+ interconnect_pre (Type const&);
+
+ virtual void
+ interconnect_next (Type&);
+
+ virtual void
+ interconnect_next (Type const&);
+
+ virtual void
+ interconnect_post (Type&);
+
+ virtual void
+ interconnect_post (Type const&);
+
+ virtual void
+ interconnect_none (Type&);
+
+ virtual void
+ interconnect_none (Type const&);
+
+ virtual void
+ bridge (Type&);
+
+ virtual void
+ bridge (Type const&);
+
+ virtual void
+ bridge_pre (Type&);
+
+ virtual void
+ bridge_pre (Type const&);
+
+ virtual void
+ bridge_next (Type&);
+
+ virtual void
+ bridge_next (Type const&);
+
+ virtual void
+ bridge_post (Type&);
+
+ virtual void
+ bridge_post (Type const&);
+
+ virtual void
+ bridge_none (Type&);
+
+ virtual void
+ bridge_none (Type const&);
+
+ virtual void
+ sharedResource (Type&);
+
+ virtual void
+ sharedResource (Type const&);
+
+ virtual void
+ sharedResource_pre (Type&);
+
+ virtual void
+ sharedResource_pre (Type const&);
+
+ virtual void
+ sharedResource_next (Type&);
+
+ virtual void
+ sharedResource_next (Type const&);
+
+ virtual void
+ sharedResource_post (Type&);
+
+ virtual void
+ sharedResource_post (Type const&);
+
+ virtual void
+ sharedResource_none (Type&);
+
+ virtual void
+ sharedResource_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Bridge : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Bridge >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ connect (Type&);
+
+ virtual void
+ connect (Type const&);
+
+ virtual void
+ connect_pre (Type&);
+
+ virtual void
+ connect_pre (Type const&);
+
+ virtual void
+ connect_next (Type&);
+
+ virtual void
+ connect_next (Type const&);
+
+ virtual void
+ connect_post (Type&);
+
+ virtual void
+ connect_post (Type const&);
+
+ virtual void
+ resource (Type&);
+
+ virtual void
+ resource (Type const&);
+
+ virtual void
+ resource_pre (Type&);
+
+ virtual void
+ resource_pre (Type const&);
+
+ virtual void
+ resource_next (Type&);
+
+ virtual void
+ resource_next (Type const&);
+
+ virtual void
+ resource_post (Type&);
+
+ virtual void
+ resource_post (Type const&);
+
+ virtual void
+ resource_none (Type&);
+
+ virtual void
+ resource_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Interconnect : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Interconnect >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ connection (Type&);
+
+ virtual void
+ connection (Type const&);
+
+ virtual void
+ connection_pre (Type&);
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type&);
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type&);
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ connection_none (Type&);
+
+ virtual void
+ connection_none (Type const&);
+
+ virtual void
+ connect (Type&);
+
+ virtual void
+ connect (Type const&);
+
+ virtual void
+ connect_pre (Type&);
+
+ virtual void
+ connect_pre (Type const&);
+
+ virtual void
+ connect_next (Type&);
+
+ virtual void
+ connect_next (Type const&);
+
+ virtual void
+ connect_post (Type&);
+
+ virtual void
+ connect_post (Type const&);
+
+ virtual void
+ resource (Type&);
+
+ virtual void
+ resource (Type const&);
+
+ virtual void
+ resource_pre (Type&);
+
+ virtual void
+ resource_pre (Type const&);
+
+ virtual void
+ resource_next (Type&);
+
+ virtual void
+ resource_next (Type const&);
+
+ virtual void
+ resource_post (Type&);
+
+ virtual void
+ resource_post (Type const&);
+
+ virtual void
+ resource_none (Type&);
+
+ virtual void
+ resource_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export Node : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Node >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ connection (Type&);
+
+ virtual void
+ connection (Type const&);
+
+ virtual void
+ connection_pre (Type&);
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type&);
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type&);
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ connection_none (Type&);
+
+ virtual void
+ connection_none (Type const&);
+
+ virtual void
+ sharedResource (Type&);
+
+ virtual void
+ sharedResource (Type const&);
+
+ virtual void
+ sharedResource_pre (Type&);
+
+ virtual void
+ sharedResource_pre (Type const&);
+
+ virtual void
+ sharedResource_next (Type&);
+
+ virtual void
+ sharedResource_next (Type const&);
+
+ virtual void
+ sharedResource_post (Type&);
+
+ virtual void
+ sharedResource_post (Type const&);
+
+ virtual void
+ sharedResource_none (Type&);
+
+ virtual void
+ sharedResource_none (Type const&);
+
+ virtual void
+ resource (Type&);
+
+ virtual void
+ resource (Type const&);
+
+ virtual void
+ resource_pre (Type&);
+
+ virtual void
+ resource_pre (Type const&);
+
+ virtual void
+ resource_next (Type&);
+
+ virtual void
+ resource_next (Type const&);
+
+ virtual void
+ resource_post (Type&);
+
+ virtual void
+ resource_post (Type const&);
+
+ virtual void
+ resource_none (Type&);
+
+ virtual void
+ resource_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export SharedResource : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SharedResource >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType (Type&);
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ node (Type&);
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ property (Type&);
+
+ virtual void
+ property (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct Domain : Traversal::Domain,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Domain Type;
+ Domain (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ node_pre (Type &o)
+ {
+ this->node_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ node_pre (Type const&);
+
+ virtual void
+ node_next (Type &o)
+ {
+ this->node_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ node_next (Type const&);
+
+ virtual void
+ node_post (Type &o)
+ {
+ this->node_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ node_post (Type const&);
+
+ virtual void
+ interconnect_pre (Type &o)
+ {
+ this->interconnect_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ interconnect_pre (Type const&);
+
+ virtual void
+ interconnect_next (Type &o)
+ {
+ this->interconnect_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ interconnect_next (Type const&);
+
+ virtual void
+ interconnect_post (Type &o)
+ {
+ this->interconnect_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ interconnect_post (Type const&);
+
+ virtual void
+ bridge_pre (Type &o)
+ {
+ this->bridge_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ bridge_pre (Type const&);
+
+ virtual void
+ bridge_next (Type &o)
+ {
+ this->bridge_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ bridge_next (Type const&);
+
+ virtual void
+ bridge_post (Type &o)
+ {
+ this->bridge_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ bridge_post (Type const&);
+
+ virtual void
+ sharedResource_pre (Type &o)
+ {
+ this->sharedResource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sharedResource_pre (Type const&);
+
+ virtual void
+ sharedResource_next (Type &o)
+ {
+ this->sharedResource_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sharedResource_next (Type const&);
+
+ virtual void
+ sharedResource_post (Type &o)
+ {
+ this->sharedResource_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sharedResource_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ protected:
+ Domain ();
+ };
+
+ struct Bridge : Traversal::Bridge,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Bridge Type;
+ Bridge (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ connect_pre (Type &o)
+ {
+ this->connect_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connect_pre (Type const&);
+
+ virtual void
+ connect_next (Type &o)
+ {
+ this->connect_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connect_next (Type const&);
+
+ virtual void
+ connect_post (Type &o)
+ {
+ this->connect_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connect_post (Type const&);
+
+ virtual void
+ resource_pre (Type &o)
+ {
+ this->resource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_pre (Type const&);
+
+ virtual void
+ resource_next (Type &o)
+ {
+ this->resource_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_next (Type const&);
+
+ virtual void
+ resource_post (Type &o)
+ {
+ this->resource_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_post (Type const&);
+
+ protected:
+ Bridge ();
+ };
+
+ struct Interconnect : Traversal::Interconnect,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Interconnect Type;
+ Interconnect (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ connection_pre (Type &o)
+ {
+ this->connection_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type &o)
+ {
+ this->connection_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type &o)
+ {
+ this->connection_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ connect_pre (Type &o)
+ {
+ this->connect_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connect_pre (Type const&);
+
+ virtual void
+ connect_next (Type &o)
+ {
+ this->connect_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connect_next (Type const&);
+
+ virtual void
+ connect_post (Type &o)
+ {
+ this->connect_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connect_post (Type const&);
+
+ virtual void
+ resource_pre (Type &o)
+ {
+ this->resource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_pre (Type const&);
+
+ virtual void
+ resource_next (Type &o)
+ {
+ this->resource_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_next (Type const&);
+
+ virtual void
+ resource_post (Type &o)
+ {
+ this->resource_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_post (Type const&);
+
+ protected:
+ Interconnect ();
+ };
+
+ struct Node : Traversal::Node,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Node Type;
+ Node (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ connection_pre (Type &o)
+ {
+ this->connection_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type &o)
+ {
+ this->connection_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type &o)
+ {
+ this->connection_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ sharedResource_pre (Type &o)
+ {
+ this->sharedResource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sharedResource_pre (Type const&);
+
+ virtual void
+ sharedResource_next (Type &o)
+ {
+ this->sharedResource_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sharedResource_next (Type const&);
+
+ virtual void
+ sharedResource_post (Type &o)
+ {
+ this->sharedResource_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ sharedResource_post (Type const&);
+
+ virtual void
+ resource_pre (Type &o)
+ {
+ this->resource_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_pre (Type const&);
+
+ virtual void
+ resource_next (Type &o)
+ {
+ this->resource_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_next (Type const&);
+
+ virtual void
+ resource_post (Type &o)
+ {
+ this->resource_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resource_post (Type const&);
+
+ protected:
+ Node ();
+ };
+
+ struct SharedResource : Traversal::SharedResource,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::SharedResource Type;
+ SharedResource (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ resourceType (Type &o)
+ {
+ this->resourceType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ resourceType (Type const&);
+
+ virtual void
+ node (Type &o)
+ {
+ this->node (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ node (Type const&);
+
+ virtual void
+ property (Type &o)
+ {
+ this->property (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ property (Type const&);
+
+ protected:
+ SharedResource ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // CDD_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cdp.cpp b/modules/CIAO/DAnCE/Config_Handlers/cdp.cpp
new file mode 100644
index 00000000000..f1e8538a788
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cdp.cpp
@@ -0,0 +1,2366 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "cdp.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // PlanSubcomponentPropertyReference
+ //
+
+ PlanSubcomponentPropertyReference::
+ PlanSubcomponentPropertyReference (::XMLSchema::string< ACE_TCHAR > const& propertyName__,
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription const& instance__)
+ :
+ ::XSCRT::Type (),
+ propertyName_ (new ::XMLSchema::string< ACE_TCHAR > (propertyName__)),
+ instance_ (new ::CIAO::Config_Handlers::InstanceDeploymentDescription (instance__)),
+ regulator__ ()
+ {
+ propertyName_->container (this);
+ instance_->container (this);
+ }
+
+ PlanSubcomponentPropertyReference::
+ PlanSubcomponentPropertyReference (PlanSubcomponentPropertyReference const& s)
+ :
+ ::XSCRT::Type (),
+ propertyName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.propertyName_)),
+ instance_ (new ::CIAO::Config_Handlers::InstanceDeploymentDescription (*s.instance_)),
+ regulator__ ()
+ {
+ propertyName_->container (this);
+ instance_->container (this);
+ }
+
+ PlanSubcomponentPropertyReference& PlanSubcomponentPropertyReference::
+ operator= (PlanSubcomponentPropertyReference const& s)
+ {
+ propertyName (*s.propertyName_);
+
+ instance (*s.instance_);
+
+ return *this;
+ }
+
+
+ // PlanSubcomponentPropertyReference
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& PlanSubcomponentPropertyReference::
+ propertyName () const
+ {
+ return *propertyName_;
+ }
+
+ void PlanSubcomponentPropertyReference::
+ propertyName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *propertyName_ = e;
+ }
+
+ // PlanSubcomponentPropertyReference
+ //
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription const& PlanSubcomponentPropertyReference::
+ instance () const
+ {
+ return *instance_;
+ }
+
+ void PlanSubcomponentPropertyReference::
+ instance (::CIAO::Config_Handlers::InstanceDeploymentDescription const& e)
+ {
+ *instance_ = e;
+ }
+
+
+ // PlanPropertyMapping
+ //
+
+ PlanPropertyMapping::
+ PlanPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& externalName__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > > const& delegatesTo__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ externalName_ (new ::XMLSchema::string< ACE_TCHAR > (externalName__)),
+ delegatesTo_ (delegatesTo__),
+ regulator__ ()
+ {
+ name_->container (this);
+ externalName_->container (this);
+ }
+
+ PlanPropertyMapping::
+ PlanPropertyMapping (PlanPropertyMapping const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ source_ (s.source_),
+ externalName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.externalName_)),
+ delegatesTo_ (s.delegatesTo_),
+ regulator__ ()
+ {
+ name_->container (this);
+ externalName_->container (this);
+ }
+
+ PlanPropertyMapping& PlanPropertyMapping::
+ operator= (PlanPropertyMapping const& s)
+ {
+ name (*s.name_);
+
+ source_ = s.source_;
+
+ externalName (*s.externalName_);
+
+ delegatesTo_ = s.delegatesTo_;
+
+ return *this;
+ }
+
+
+ // PlanPropertyMapping
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& PlanPropertyMapping::
+ name () const
+ {
+ return *name_;
+ }
+
+ void PlanPropertyMapping::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // PlanPropertyMapping
+ //
+ PlanPropertyMapping::source_iterator PlanPropertyMapping::
+ begin_source ()
+ {
+ return source_.begin ();
+ }
+
+ PlanPropertyMapping::source_iterator PlanPropertyMapping::
+ end_source ()
+ {
+ return source_.end ();
+ }
+
+ PlanPropertyMapping::source_const_iterator PlanPropertyMapping::
+ begin_source () const
+ {
+ return source_.begin ();
+ }
+
+ PlanPropertyMapping::source_const_iterator PlanPropertyMapping::
+ end_source () const
+ {
+ return source_.end ();
+ }
+
+ void PlanPropertyMapping::
+ add_source (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ source_.push_back (e);
+ }
+
+ size_t PlanPropertyMapping::
+ count_source(void) const
+ {
+ return source_.size ();
+ }
+
+ // PlanPropertyMapping
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& PlanPropertyMapping::
+ externalName () const
+ {
+ return *externalName_;
+ }
+
+ void PlanPropertyMapping::
+ externalName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *externalName_ = e;
+ }
+
+ // PlanPropertyMapping
+ //
+ PlanPropertyMapping::delegatesTo_iterator PlanPropertyMapping::
+ begin_delegatesTo ()
+ {
+ return delegatesTo_.begin ();
+ }
+
+ PlanPropertyMapping::delegatesTo_iterator PlanPropertyMapping::
+ end_delegatesTo ()
+ {
+ return delegatesTo_.end ();
+ }
+
+ PlanPropertyMapping::delegatesTo_const_iterator PlanPropertyMapping::
+ begin_delegatesTo () const
+ {
+ return delegatesTo_.begin ();
+ }
+
+ PlanPropertyMapping::delegatesTo_const_iterator PlanPropertyMapping::
+ end_delegatesTo () const
+ {
+ return delegatesTo_.end ();
+ }
+
+ void PlanPropertyMapping::
+ add_delegatesTo (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > const& e)
+ {
+ delegatesTo_.push_back (e);
+ }
+
+ size_t PlanPropertyMapping::
+ count_delegatesTo(void) const
+ {
+ return delegatesTo_.size ();
+ }
+
+
+ // deploymentPlan
+ //
+
+ deploymentPlan::
+ deploymentPlan ()
+ :
+ regulator__ ()
+ {
+ }
+
+ deploymentPlan::
+ deploymentPlan (deploymentPlan const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ realizes_ (s.realizes_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.realizes_) : 0),
+ implementation_ (s.implementation_),
+ instance_ (s.instance_),
+ connection_ (s.connection_),
+ externalProperty_ (s.externalProperty_),
+ dependsOn_ (s.dependsOn_),
+ artifact_ (s.artifact_),
+ infoProperty_ (s.infoProperty_),
+ localityConstraint_ (s.localityConstraint_),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (realizes_.get ()) realizes_->container (this);
+ }
+
+ deploymentPlan& deploymentPlan::
+ operator= (deploymentPlan const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.realizes_.get ())
+ realizes (*(s.realizes_));
+ else
+ realizes_.reset (0);
+
+ implementation_ = s.implementation_;
+
+ instance_ = s.instance_;
+
+ connection_ = s.connection_;
+
+ externalProperty_ = s.externalProperty_;
+
+ dependsOn_ = s.dependsOn_;
+
+ artifact_ = s.artifact_;
+
+ infoProperty_ = s.infoProperty_;
+
+ localityConstraint_ = s.localityConstraint_;
+
+ return *this;
+ }
+
+
+ // deploymentPlan
+ //
+ bool deploymentPlan::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& deploymentPlan::
+ label () const
+ {
+ return *label_;
+ }
+
+ void deploymentPlan::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // deploymentPlan
+ //
+ bool deploymentPlan::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& deploymentPlan::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void deploymentPlan::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // deploymentPlan
+ //
+ bool deploymentPlan::
+ realizes_p () const
+ {
+ return realizes_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& deploymentPlan::
+ realizes () const
+ {
+ return *realizes_;
+ }
+
+ void deploymentPlan::
+ realizes (::CIAO::Config_Handlers::ComponentInterfaceDescription const& e)
+ {
+ if (realizes_.get ())
+ {
+ *realizes_ = e;
+ }
+
+ else
+ {
+ realizes_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (e));
+ realizes_->container (this);
+ }
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::implementation_iterator deploymentPlan::
+ begin_implementation ()
+ {
+ return implementation_.begin ();
+ }
+
+ deploymentPlan::implementation_iterator deploymentPlan::
+ end_implementation ()
+ {
+ return implementation_.end ();
+ }
+
+ deploymentPlan::implementation_const_iterator deploymentPlan::
+ begin_implementation () const
+ {
+ return implementation_.begin ();
+ }
+
+ deploymentPlan::implementation_const_iterator deploymentPlan::
+ end_implementation () const
+ {
+ return implementation_.end ();
+ }
+
+ void deploymentPlan::
+ add_implementation (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > const& e)
+ {
+ implementation_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_implementation(void) const
+ {
+ return implementation_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::instance_iterator deploymentPlan::
+ begin_instance ()
+ {
+ return instance_.begin ();
+ }
+
+ deploymentPlan::instance_iterator deploymentPlan::
+ end_instance ()
+ {
+ return instance_.end ();
+ }
+
+ deploymentPlan::instance_const_iterator deploymentPlan::
+ begin_instance () const
+ {
+ return instance_.begin ();
+ }
+
+ deploymentPlan::instance_const_iterator deploymentPlan::
+ end_instance () const
+ {
+ return instance_.end ();
+ }
+
+ void deploymentPlan::
+ add_instance (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > const& e)
+ {
+ instance_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_instance(void) const
+ {
+ return instance_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::connection_iterator deploymentPlan::
+ begin_connection ()
+ {
+ return connection_.begin ();
+ }
+
+ deploymentPlan::connection_iterator deploymentPlan::
+ end_connection ()
+ {
+ return connection_.end ();
+ }
+
+ deploymentPlan::connection_const_iterator deploymentPlan::
+ begin_connection () const
+ {
+ return connection_.begin ();
+ }
+
+ deploymentPlan::connection_const_iterator deploymentPlan::
+ end_connection () const
+ {
+ return connection_.end ();
+ }
+
+ void deploymentPlan::
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > const& e)
+ {
+ connection_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_connection(void) const
+ {
+ return connection_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::externalProperty_iterator deploymentPlan::
+ begin_externalProperty ()
+ {
+ return externalProperty_.begin ();
+ }
+
+ deploymentPlan::externalProperty_iterator deploymentPlan::
+ end_externalProperty ()
+ {
+ return externalProperty_.end ();
+ }
+
+ deploymentPlan::externalProperty_const_iterator deploymentPlan::
+ begin_externalProperty () const
+ {
+ return externalProperty_.begin ();
+ }
+
+ deploymentPlan::externalProperty_const_iterator deploymentPlan::
+ end_externalProperty () const
+ {
+ return externalProperty_.end ();
+ }
+
+ void deploymentPlan::
+ add_externalProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanPropertyMapping, ACE_Null_Mutex > const& e)
+ {
+ externalProperty_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_externalProperty(void) const
+ {
+ return externalProperty_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::dependsOn_iterator deploymentPlan::
+ begin_dependsOn ()
+ {
+ return dependsOn_.begin ();
+ }
+
+ deploymentPlan::dependsOn_iterator deploymentPlan::
+ end_dependsOn ()
+ {
+ return dependsOn_.end ();
+ }
+
+ deploymentPlan::dependsOn_const_iterator deploymentPlan::
+ begin_dependsOn () const
+ {
+ return dependsOn_.begin ();
+ }
+
+ deploymentPlan::dependsOn_const_iterator deploymentPlan::
+ end_dependsOn () const
+ {
+ return dependsOn_.end ();
+ }
+
+ void deploymentPlan::
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& e)
+ {
+ dependsOn_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_dependsOn(void) const
+ {
+ return dependsOn_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::artifact_iterator deploymentPlan::
+ begin_artifact ()
+ {
+ return artifact_.begin ();
+ }
+
+ deploymentPlan::artifact_iterator deploymentPlan::
+ end_artifact ()
+ {
+ return artifact_.end ();
+ }
+
+ deploymentPlan::artifact_const_iterator deploymentPlan::
+ begin_artifact () const
+ {
+ return artifact_.begin ();
+ }
+
+ deploymentPlan::artifact_const_iterator deploymentPlan::
+ end_artifact () const
+ {
+ return artifact_.end ();
+ }
+
+ void deploymentPlan::
+ add_artifact (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > const& e)
+ {
+ artifact_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_artifact(void) const
+ {
+ return artifact_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::infoProperty_iterator deploymentPlan::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ deploymentPlan::infoProperty_iterator deploymentPlan::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ deploymentPlan::infoProperty_const_iterator deploymentPlan::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ deploymentPlan::infoProperty_const_iterator deploymentPlan::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void deploymentPlan::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // deploymentPlan
+ //
+ deploymentPlan::localityConstraint_iterator deploymentPlan::
+ begin_localityConstraint ()
+ {
+ return localityConstraint_.begin ();
+ }
+
+ deploymentPlan::localityConstraint_iterator deploymentPlan::
+ end_localityConstraint ()
+ {
+ return localityConstraint_.end ();
+ }
+
+ deploymentPlan::localityConstraint_const_iterator deploymentPlan::
+ begin_localityConstraint () const
+ {
+ return localityConstraint_.begin ();
+ }
+
+ deploymentPlan::localityConstraint_const_iterator deploymentPlan::
+ end_localityConstraint () const
+ {
+ return localityConstraint_.end ();
+ }
+
+ void deploymentPlan::
+ add_localityConstraint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > const& e)
+ {
+ localityConstraint_.push_back (e);
+ }
+
+ size_t deploymentPlan::
+ count_localityConstraint(void) const
+ {
+ return localityConstraint_.size ();
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // PlanSubcomponentPropertyReference
+ //
+
+ PlanSubcomponentPropertyReference::
+ PlanSubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("propertyName"))
+ {
+ propertyName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ propertyName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("instance"))
+ {
+ instance_ = ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceDeploymentDescription > (new ::CIAO::Config_Handlers::InstanceDeploymentDescription (e));
+ instance_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // PlanPropertyMapping
+ //
+
+ PlanPropertyMapping::
+ PlanPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("source"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_source (t);
+ }
+
+ else if (n == ACE_TEXT("externalName"))
+ {
+ externalName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ externalName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("delegatesTo"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference (e));
+ add_delegatesTo (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // deploymentPlan
+ //
+
+ deploymentPlan::
+ deploymentPlan (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("realizes"))
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription t (e);
+ realizes (t);
+ }
+
+ else if (n == ACE_TEXT("implementation"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::MonolithicDeploymentDescription (e));
+ add_implementation (t);
+ }
+
+ else if (n == ACE_TEXT("instance"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::InstanceDeploymentDescription (e));
+ add_instance (t);
+ }
+
+ else if (n == ACE_TEXT("connection"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanConnectionDescription (e));
+ add_connection (t);
+ }
+
+ else if (n == ACE_TEXT("externalProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanPropertyMapping, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanPropertyMapping (e));
+ add_externalProperty (t);
+ }
+
+ else if (n == ACE_TEXT("dependsOn"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationDependency (e));
+ add_dependsOn (t);
+ }
+
+ else if (n == ACE_TEXT("artifact"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ArtifactDeploymentDescription (e));
+ add_artifact (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else if (n == ACE_TEXT("localityConstraint"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanLocality (e));
+ add_localityConstraint (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct PlanSubcomponentPropertyReferenceTypeInfoInitializer
+ {
+ PlanSubcomponentPropertyReferenceTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanSubcomponentPropertyReference));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PlanSubcomponentPropertyReferenceTypeInfoInitializer PlanSubcomponentPropertyReferenceTypeInfoInitializer_;
+
+ struct PlanPropertyMappingTypeInfoInitializer
+ {
+ PlanPropertyMappingTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanPropertyMapping));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PlanPropertyMappingTypeInfoInitializer PlanPropertyMappingTypeInfoInitializer_;
+
+ struct deploymentPlanTypeInfoInitializer
+ {
+ deploymentPlanTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::deploymentPlan));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ deploymentPlanTypeInfoInitializer deploymentPlanTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // PlanSubcomponentPropertyReference
+ //
+ //
+
+ void PlanSubcomponentPropertyReference::
+ traverse (Type& o)
+ {
+ pre (o);
+ propertyName (o);
+ instance (o);
+ post (o);
+ }
+
+ void PlanSubcomponentPropertyReference::
+ traverse (Type const& o)
+ {
+ pre (o);
+ propertyName (o);
+ instance (o);
+ post (o);
+ }
+
+ void PlanSubcomponentPropertyReference::
+ pre (Type&)
+ {
+ }
+
+ void PlanSubcomponentPropertyReference::
+ pre (Type const&)
+ {
+ }
+
+ void PlanSubcomponentPropertyReference::
+ propertyName (Type& o)
+ {
+ dispatch (o.propertyName ());
+ }
+
+ void PlanSubcomponentPropertyReference::
+ propertyName (Type const& o)
+ {
+ dispatch (o.propertyName ());
+ }
+
+ void PlanSubcomponentPropertyReference::
+ instance (Type& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void PlanSubcomponentPropertyReference::
+ instance (Type const& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void PlanSubcomponentPropertyReference::
+ post (Type&)
+ {
+ }
+
+ void PlanSubcomponentPropertyReference::
+ post (Type const&)
+ {
+ }
+
+ // PlanPropertyMapping
+ //
+ //
+
+ void PlanPropertyMapping::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ source (o);
+ externalName (o);
+ delegatesTo (o);
+ post (o);
+ }
+
+ void PlanPropertyMapping::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ source (o);
+ externalName (o);
+ delegatesTo (o);
+ post (o);
+ }
+
+ void PlanPropertyMapping::
+ pre (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ pre (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void PlanPropertyMapping::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void PlanPropertyMapping::
+ source (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanPropertyMapping::source_iterator b (o.begin_source()), e (o.end_source());
+
+ if (b != e)
+ {
+ source_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) source_next (o);
+ }
+
+ source_post (o);
+ }
+
+ else source_none (o);
+ }
+
+ void PlanPropertyMapping::
+ source (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanPropertyMapping::source_const_iterator b (o.begin_source()), e (o.end_source());
+
+ if (b != e)
+ {
+ source_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) source_next (o);
+ }
+
+ source_post (o);
+ }
+
+ else source_none (o);
+ }
+
+ void PlanPropertyMapping::
+ source_pre (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_pre (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_next (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_next (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_post (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_post (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_none (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ source_none (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ externalName (Type& o)
+ {
+ dispatch (o.externalName ());
+ }
+
+ void PlanPropertyMapping::
+ externalName (Type const& o)
+ {
+ dispatch (o.externalName ());
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanPropertyMapping::delegatesTo_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
+
+ if (b != e)
+ {
+ delegatesTo_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) delegatesTo_next (o);
+ }
+
+ delegatesTo_post (o);
+ }
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PlanPropertyMapping::delegatesTo_const_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
+
+ if (b != e)
+ {
+ delegatesTo_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) delegatesTo_next (o);
+ }
+
+ delegatesTo_post (o);
+ }
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_pre (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_pre (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_next (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_next (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_post (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_post (Type const&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ post (Type&)
+ {
+ }
+
+ void PlanPropertyMapping::
+ post (Type const&)
+ {
+ }
+
+ // deploymentPlan
+ //
+ //
+
+ void deploymentPlan::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.realizes_p ()) realizes (o);
+ else realizes_none (o);
+ implementation (o);
+ instance (o);
+ connection (o);
+ externalProperty (o);
+ dependsOn (o);
+ artifact (o);
+ infoProperty (o);
+ localityConstraint (o);
+ post (o);
+ }
+
+ void deploymentPlan::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.realizes_p ()) realizes (o);
+ else realizes_none (o);
+ implementation (o);
+ instance (o);
+ connection (o);
+ externalProperty (o);
+ dependsOn (o);
+ artifact (o);
+ infoProperty (o);
+ localityConstraint (o);
+ post (o);
+ }
+
+ void deploymentPlan::
+ pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void deploymentPlan::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void deploymentPlan::
+ label_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ label_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void deploymentPlan::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void deploymentPlan::
+ UUID_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ UUID_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ realizes (Type& o)
+ {
+ dispatch (o.realizes ());
+ }
+
+ void deploymentPlan::
+ realizes (Type const& o)
+ {
+ dispatch (o.realizes ());
+ }
+
+ void deploymentPlan::
+ realizes_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ realizes_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
+
+ if (b != e)
+ {
+ implementation_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) implementation_next (o);
+ }
+
+ implementation_post (o);
+ }
+
+ else implementation_none (o);
+ }
+
+ void deploymentPlan::
+ implementation (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
+
+ if (b != e)
+ {
+ implementation_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) implementation_next (o);
+ }
+
+ implementation_post (o);
+ }
+
+ else implementation_none (o);
+ }
+
+ void deploymentPlan::
+ implementation_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ implementation_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ instance (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::instance_iterator b (o.begin_instance()), e (o.end_instance());
+
+ if (b != e)
+ {
+ instance_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) instance_next (o);
+ }
+
+ instance_post (o);
+ }
+
+ else instance_none (o);
+ }
+
+ void deploymentPlan::
+ instance (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::instance_const_iterator b (o.begin_instance()), e (o.end_instance());
+
+ if (b != e)
+ {
+ instance_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) instance_next (o);
+ }
+
+ instance_post (o);
+ }
+
+ else instance_none (o);
+ }
+
+ void deploymentPlan::
+ instance_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ instance_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ connection (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::connection_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void deploymentPlan::
+ connection (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void deploymentPlan::
+ connection_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ connection_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::externalProperty_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
+
+ if (b != e)
+ {
+ externalProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalProperty_next (o);
+ }
+
+ externalProperty_post (o);
+ }
+
+ else externalProperty_none (o);
+ }
+
+ void deploymentPlan::
+ externalProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::externalProperty_const_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
+
+ if (b != e)
+ {
+ externalProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalProperty_next (o);
+ }
+
+ externalProperty_post (o);
+ }
+
+ else externalProperty_none (o);
+ }
+
+ void deploymentPlan::
+ externalProperty_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ externalProperty_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void deploymentPlan::
+ dependsOn (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void deploymentPlan::
+ dependsOn_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ dependsOn_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::artifact_iterator b (o.begin_artifact()), e (o.end_artifact());
+
+ if (b != e)
+ {
+ artifact_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) artifact_next (o);
+ }
+
+ artifact_post (o);
+ }
+
+ else artifact_none (o);
+ }
+
+ void deploymentPlan::
+ artifact (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::artifact_const_iterator b (o.begin_artifact()), e (o.end_artifact());
+
+ if (b != e)
+ {
+ artifact_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) artifact_next (o);
+ }
+
+ artifact_post (o);
+ }
+
+ else artifact_none (o);
+ }
+
+ void deploymentPlan::
+ artifact_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ artifact_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void deploymentPlan::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void deploymentPlan::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::localityConstraint_iterator b (o.begin_localityConstraint()), e (o.end_localityConstraint());
+
+ if (b != e)
+ {
+ localityConstraint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) localityConstraint_next (o);
+ }
+
+ localityConstraint_post (o);
+ }
+
+ else localityConstraint_none (o);
+ }
+
+ void deploymentPlan::
+ localityConstraint (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::deploymentPlan::localityConstraint_const_iterator b (o.begin_localityConstraint()), e (o.end_localityConstraint());
+
+ if (b != e)
+ {
+ localityConstraint_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) localityConstraint_next (o);
+ }
+
+ localityConstraint_post (o);
+ }
+
+ else localityConstraint_none (o);
+ }
+
+ void deploymentPlan::
+ localityConstraint_pre (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_pre (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_next (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_next (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_post (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_none (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ localityConstraint_none (Type const&)
+ {
+ }
+
+ void deploymentPlan::
+ post (Type&)
+ {
+ }
+
+ void deploymentPlan::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // PlanSubcomponentPropertyReference
+ //
+ //
+
+ PlanSubcomponentPropertyReference::
+ PlanSubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PlanSubcomponentPropertyReference::
+ PlanSubcomponentPropertyReference ()
+ {
+ }
+
+ void PlanSubcomponentPropertyReference::
+ traverse (Type const& o)
+ {
+ Traversal::PlanSubcomponentPropertyReference::traverse (o);
+ }
+
+ void PlanSubcomponentPropertyReference::
+ propertyName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("propertyName"), top_ ()));
+ Traversal::PlanSubcomponentPropertyReference::propertyName (o);
+ pop_ ();
+ }
+
+ void PlanSubcomponentPropertyReference::
+ instance (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("instance"), top_ ()));
+ Traversal::PlanSubcomponentPropertyReference::instance (o);
+ pop_ ();
+ }
+
+ // PlanPropertyMapping
+ //
+ //
+
+ PlanPropertyMapping::
+ PlanPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PlanPropertyMapping::
+ PlanPropertyMapping ()
+ {
+ }
+
+ void PlanPropertyMapping::
+ traverse (Type const& o)
+ {
+ Traversal::PlanPropertyMapping::traverse (o);
+ }
+
+ void PlanPropertyMapping::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::PlanPropertyMapping::name (o);
+ pop_ ();
+ }
+
+ void PlanPropertyMapping::
+ source_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("source"), top_ ()));
+ }
+
+ void PlanPropertyMapping::
+ source_next (Type const& o)
+ {
+ source_post (o);
+ source_pre (o);
+ }
+
+ void PlanPropertyMapping::
+ source_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PlanPropertyMapping::
+ externalName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalName"), top_ ()));
+ Traversal::PlanPropertyMapping::externalName (o);
+ pop_ ();
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("delegatesTo"), top_ ()));
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_next (Type const& o)
+ {
+ delegatesTo_post (o);
+ delegatesTo_pre (o);
+ }
+
+ void PlanPropertyMapping::
+ delegatesTo_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // deploymentPlan
+ //
+ //
+
+ deploymentPlan::
+ deploymentPlan (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ deploymentPlan::
+ deploymentPlan ()
+ {
+ }
+
+ void deploymentPlan::
+ traverse (Type const& o)
+ {
+ Traversal::deploymentPlan::traverse (o);
+ }
+
+ void deploymentPlan::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::deploymentPlan::label (o);
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::deploymentPlan::UUID (o);
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ realizes (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("realizes"), top_ ()));
+ Traversal::deploymentPlan::realizes (o);
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ implementation_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("implementation"), top_ ()));
+ }
+
+ void deploymentPlan::
+ implementation_next (Type const& o)
+ {
+ implementation_post (o);
+ implementation_pre (o);
+ }
+
+ void deploymentPlan::
+ implementation_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ instance_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("instance"), top_ ()));
+ }
+
+ void deploymentPlan::
+ instance_next (Type const& o)
+ {
+ instance_post (o);
+ instance_pre (o);
+ }
+
+ void deploymentPlan::
+ instance_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ connection_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("connection"), top_ ()));
+ }
+
+ void deploymentPlan::
+ connection_next (Type const& o)
+ {
+ connection_post (o);
+ connection_pre (o);
+ }
+
+ void deploymentPlan::
+ connection_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ externalProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalProperty"), top_ ()));
+ }
+
+ void deploymentPlan::
+ externalProperty_next (Type const& o)
+ {
+ externalProperty_post (o);
+ externalProperty_pre (o);
+ }
+
+ void deploymentPlan::
+ externalProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ dependsOn_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("dependsOn"), top_ ()));
+ }
+
+ void deploymentPlan::
+ dependsOn_next (Type const& o)
+ {
+ dependsOn_post (o);
+ dependsOn_pre (o);
+ }
+
+ void deploymentPlan::
+ dependsOn_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ artifact_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("artifact"), top_ ()));
+ }
+
+ void deploymentPlan::
+ artifact_next (Type const& o)
+ {
+ artifact_post (o);
+ artifact_pre (o);
+ }
+
+ void deploymentPlan::
+ artifact_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void deploymentPlan::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void deploymentPlan::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void deploymentPlan::
+ localityConstraint_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("localityConstraint"), top_ ()));
+ }
+
+ void deploymentPlan::
+ localityConstraint_next (Type const& o)
+ {
+ localityConstraint_post (o);
+ localityConstraint_pre (o);
+ }
+
+ void deploymentPlan::
+ localityConstraint_post (Type const&)
+ {
+ pop_ ();
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cdp.hpp b/modules/CIAO/DAnCE/Config_Handlers/cdp.hpp
new file mode 100644
index 00000000000..9b1e5f0bc9e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cdp.hpp
@@ -0,0 +1,1187 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef CDP_HPP
+#define CDP_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class PlanSubcomponentPropertyReference;
+ class PlanPropertyMapping;
+ class deploymentPlan;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "ccd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export PlanSubcomponentPropertyReference : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanSubcomponentPropertyReference, ACE_Null_Mutex > _ptr;
+
+ // propertyName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& propertyName () const;
+ void propertyName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > propertyName_;
+
+ // instance
+ //
+ public:
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription const& instance () const;
+ void instance (::CIAO::Config_Handlers::InstanceDeploymentDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceDeploymentDescription > instance_;
+
+ public:
+ PlanSubcomponentPropertyReference (::XMLSchema::string< ACE_TCHAR > const& propertyName__,
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription const& instance__);
+
+ PlanSubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PlanSubcomponentPropertyReference (PlanSubcomponentPropertyReference const& s);
+
+ PlanSubcomponentPropertyReference&
+ operator= (PlanSubcomponentPropertyReference const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export PlanPropertyMapping : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanPropertyMapping, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // source
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator source_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator source_const_iterator;
+ source_iterator begin_source ();
+ source_iterator end_source ();
+ source_const_iterator begin_source () const;
+ source_const_iterator end_source () const;
+ void add_source ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* source_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_source (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > source_;
+
+ // externalName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& externalName () const;
+ void externalName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > externalName_;
+
+ // delegatesTo
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > >::iterator delegatesTo_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > >::const_iterator delegatesTo_const_iterator;
+ delegatesTo_iterator begin_delegatesTo ();
+ delegatesTo_iterator end_delegatesTo ();
+ delegatesTo_const_iterator begin_delegatesTo () const;
+ delegatesTo_const_iterator end_delegatesTo () const;
+ void add_delegatesTo ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > const& );
+ XSCRT::Type* delegatesTo_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_delegatesTo (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > > delegatesTo_;
+
+ public:
+ PlanPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& externalName__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference, ACE_Null_Mutex > > const& delegatesTo__);
+
+ PlanPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PlanPropertyMapping (PlanPropertyMapping const& s);
+
+ PlanPropertyMapping&
+ operator= (PlanPropertyMapping const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export deploymentPlan : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < deploymentPlan, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // realizes
+ //
+ public:
+ bool realizes_p () const;
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& realizes () const;
+ void realizes (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > realizes_;
+
+ // implementation
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > >::iterator implementation_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > >::const_iterator implementation_const_iterator;
+ implementation_iterator begin_implementation ();
+ implementation_iterator end_implementation ();
+ implementation_const_iterator begin_implementation () const;
+ implementation_const_iterator end_implementation () const;
+ void add_implementation ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* implementation_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_implementation (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > > implementation_;
+
+ // instance
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > >::iterator instance_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > >::const_iterator instance_const_iterator;
+ instance_iterator begin_instance ();
+ instance_iterator end_instance ();
+ instance_const_iterator begin_instance () const;
+ instance_const_iterator end_instance () const;
+ void add_instance ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* instance_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_instance (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > > instance_;
+
+ // connection
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
+ connection_iterator begin_connection ();
+ connection_iterator end_connection ();
+ connection_const_iterator begin_connection () const;
+ connection_const_iterator end_connection () const;
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* connection_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_connection (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > > connection_;
+
+ // externalProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanPropertyMapping, ACE_Null_Mutex > >::iterator externalProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanPropertyMapping, ACE_Null_Mutex > >::const_iterator externalProperty_const_iterator;
+ externalProperty_iterator begin_externalProperty ();
+ externalProperty_iterator end_externalProperty ();
+ externalProperty_const_iterator begin_externalProperty () const;
+ externalProperty_const_iterator end_externalProperty () const;
+ void add_externalProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanPropertyMapping, ACE_Null_Mutex > const& );
+ XSCRT::Type* externalProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_externalProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanPropertyMapping, ACE_Null_Mutex > > externalProperty_;
+
+ // dependsOn
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
+ dependsOn_iterator begin_dependsOn ();
+ dependsOn_iterator end_dependsOn ();
+ dependsOn_const_iterator begin_dependsOn () const;
+ dependsOn_const_iterator end_dependsOn () const;
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& );
+ XSCRT::Type* dependsOn_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_dependsOn (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > > dependsOn_;
+
+ // artifact
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > >::iterator artifact_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > >::const_iterator artifact_const_iterator;
+ artifact_iterator begin_artifact ();
+ artifact_iterator end_artifact ();
+ artifact_const_iterator begin_artifact () const;
+ artifact_const_iterator end_artifact () const;
+ void add_artifact ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* artifact_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_artifact (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > > artifact_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // localityConstraint
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > >::iterator localityConstraint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > >::const_iterator localityConstraint_const_iterator;
+ localityConstraint_iterator begin_localityConstraint ();
+ localityConstraint_iterator end_localityConstraint ();
+ localityConstraint_const_iterator begin_localityConstraint () const;
+ localityConstraint_const_iterator end_localityConstraint () const;
+ void add_localityConstraint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > const& );
+ XSCRT::Type* localityConstraint_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_localityConstraint (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > > localityConstraint_;
+
+ public:
+ deploymentPlan ();
+
+ deploymentPlan (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ deploymentPlan (deploymentPlan const& s);
+
+ deploymentPlan&
+ operator= (deploymentPlan const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export PlanSubcomponentPropertyReference : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ propertyName (Type&);
+
+ virtual void
+ propertyName (Type const&);
+
+ virtual void
+ instance (Type&);
+
+ virtual void
+ instance (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export PlanPropertyMapping : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PlanPropertyMapping >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source (Type&);
+
+ virtual void
+ source (Type const&);
+
+ virtual void
+ source_pre (Type&);
+
+ virtual void
+ source_pre (Type const&);
+
+ virtual void
+ source_next (Type&);
+
+ virtual void
+ source_next (Type const&);
+
+ virtual void
+ source_post (Type&);
+
+ virtual void
+ source_post (Type const&);
+
+ virtual void
+ source_none (Type&);
+
+ virtual void
+ source_none (Type const&);
+
+ virtual void
+ externalName (Type&);
+
+ virtual void
+ externalName (Type const&);
+
+ virtual void
+ delegatesTo (Type&);
+
+ virtual void
+ delegatesTo (Type const&);
+
+ virtual void
+ delegatesTo_pre (Type&);
+
+ virtual void
+ delegatesTo_pre (Type const&);
+
+ virtual void
+ delegatesTo_next (Type&);
+
+ virtual void
+ delegatesTo_next (Type const&);
+
+ virtual void
+ delegatesTo_post (Type&);
+
+ virtual void
+ delegatesTo_post (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export deploymentPlan : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::deploymentPlan >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ realizes (Type&);
+
+ virtual void
+ realizes (Type const&);
+
+ virtual void
+ realizes_none (Type&);
+
+ virtual void
+ realizes_none (Type const&);
+
+ virtual void
+ implementation (Type&);
+
+ virtual void
+ implementation (Type const&);
+
+ virtual void
+ implementation_pre (Type&);
+
+ virtual void
+ implementation_pre (Type const&);
+
+ virtual void
+ implementation_next (Type&);
+
+ virtual void
+ implementation_next (Type const&);
+
+ virtual void
+ implementation_post (Type&);
+
+ virtual void
+ implementation_post (Type const&);
+
+ virtual void
+ implementation_none (Type&);
+
+ virtual void
+ implementation_none (Type const&);
+
+ virtual void
+ instance (Type&);
+
+ virtual void
+ instance (Type const&);
+
+ virtual void
+ instance_pre (Type&);
+
+ virtual void
+ instance_pre (Type const&);
+
+ virtual void
+ instance_next (Type&);
+
+ virtual void
+ instance_next (Type const&);
+
+ virtual void
+ instance_post (Type&);
+
+ virtual void
+ instance_post (Type const&);
+
+ virtual void
+ instance_none (Type&);
+
+ virtual void
+ instance_none (Type const&);
+
+ virtual void
+ connection (Type&);
+
+ virtual void
+ connection (Type const&);
+
+ virtual void
+ connection_pre (Type&);
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type&);
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type&);
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ connection_none (Type&);
+
+ virtual void
+ connection_none (Type const&);
+
+ virtual void
+ externalProperty (Type&);
+
+ virtual void
+ externalProperty (Type const&);
+
+ virtual void
+ externalProperty_pre (Type&);
+
+ virtual void
+ externalProperty_pre (Type const&);
+
+ virtual void
+ externalProperty_next (Type&);
+
+ virtual void
+ externalProperty_next (Type const&);
+
+ virtual void
+ externalProperty_post (Type&);
+
+ virtual void
+ externalProperty_post (Type const&);
+
+ virtual void
+ externalProperty_none (Type&);
+
+ virtual void
+ externalProperty_none (Type const&);
+
+ virtual void
+ dependsOn (Type&);
+
+ virtual void
+ dependsOn (Type const&);
+
+ virtual void
+ dependsOn_pre (Type&);
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type&);
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type&);
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ dependsOn_none (Type&);
+
+ virtual void
+ dependsOn_none (Type const&);
+
+ virtual void
+ artifact (Type&);
+
+ virtual void
+ artifact (Type const&);
+
+ virtual void
+ artifact_pre (Type&);
+
+ virtual void
+ artifact_pre (Type const&);
+
+ virtual void
+ artifact_next (Type&);
+
+ virtual void
+ artifact_next (Type const&);
+
+ virtual void
+ artifact_post (Type&);
+
+ virtual void
+ artifact_post (Type const&);
+
+ virtual void
+ artifact_none (Type&);
+
+ virtual void
+ artifact_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ localityConstraint (Type&);
+
+ virtual void
+ localityConstraint (Type const&);
+
+ virtual void
+ localityConstraint_pre (Type&);
+
+ virtual void
+ localityConstraint_pre (Type const&);
+
+ virtual void
+ localityConstraint_next (Type&);
+
+ virtual void
+ localityConstraint_next (Type const&);
+
+ virtual void
+ localityConstraint_post (Type&);
+
+ virtual void
+ localityConstraint_post (Type const&);
+
+ virtual void
+ localityConstraint_none (Type&);
+
+ virtual void
+ localityConstraint_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct PlanSubcomponentPropertyReference : Traversal::PlanSubcomponentPropertyReference,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PlanSubcomponentPropertyReference Type;
+ PlanSubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ propertyName (Type &o)
+ {
+ this->propertyName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ propertyName (Type const&);
+
+ virtual void
+ instance (Type &o)
+ {
+ this->instance (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance (Type const&);
+
+ protected:
+ PlanSubcomponentPropertyReference ();
+ };
+
+ struct PlanPropertyMapping : Traversal::PlanPropertyMapping,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PlanPropertyMapping Type;
+ PlanPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ source_pre (Type &o)
+ {
+ this->source_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_pre (Type const&);
+
+ virtual void
+ source_next (Type &o)
+ {
+ this->source_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_next (Type const&);
+
+ virtual void
+ source_post (Type &o)
+ {
+ this->source_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ source_post (Type const&);
+
+ virtual void
+ externalName (Type &o)
+ {
+ this->externalName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalName (Type const&);
+
+ virtual void
+ delegatesTo_pre (Type &o)
+ {
+ this->delegatesTo_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ delegatesTo_pre (Type const&);
+
+ virtual void
+ delegatesTo_next (Type &o)
+ {
+ this->delegatesTo_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ delegatesTo_next (Type const&);
+
+ virtual void
+ delegatesTo_post (Type &o)
+ {
+ this->delegatesTo_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ delegatesTo_post (Type const&);
+
+ protected:
+ PlanPropertyMapping ();
+ };
+
+ struct deploymentPlan : Traversal::deploymentPlan,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::deploymentPlan Type;
+ deploymentPlan (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ realizes (Type &o)
+ {
+ this->realizes (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ realizes (Type const&);
+
+ virtual void
+ implementation_pre (Type &o)
+ {
+ this->implementation_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_pre (Type const&);
+
+ virtual void
+ implementation_next (Type &o)
+ {
+ this->implementation_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_next (Type const&);
+
+ virtual void
+ implementation_post (Type &o)
+ {
+ this->implementation_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_post (Type const&);
+
+ virtual void
+ instance_pre (Type &o)
+ {
+ this->instance_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance_pre (Type const&);
+
+ virtual void
+ instance_next (Type &o)
+ {
+ this->instance_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance_next (Type const&);
+
+ virtual void
+ instance_post (Type &o)
+ {
+ this->instance_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance_post (Type const&);
+
+ virtual void
+ connection_pre (Type &o)
+ {
+ this->connection_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type &o)
+ {
+ this->connection_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type &o)
+ {
+ this->connection_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ externalProperty_pre (Type &o)
+ {
+ this->externalProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalProperty_pre (Type const&);
+
+ virtual void
+ externalProperty_next (Type &o)
+ {
+ this->externalProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalProperty_next (Type const&);
+
+ virtual void
+ externalProperty_post (Type &o)
+ {
+ this->externalProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalProperty_post (Type const&);
+
+ virtual void
+ dependsOn_pre (Type &o)
+ {
+ this->dependsOn_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type &o)
+ {
+ this->dependsOn_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type &o)
+ {
+ this->dependsOn_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ artifact_pre (Type &o)
+ {
+ this->artifact_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ artifact_pre (Type const&);
+
+ virtual void
+ artifact_next (Type &o)
+ {
+ this->artifact_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ artifact_next (Type const&);
+
+ virtual void
+ artifact_post (Type &o)
+ {
+ this->artifact_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ artifact_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ localityConstraint_pre (Type &o)
+ {
+ this->localityConstraint_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ localityConstraint_pre (Type const&);
+
+ virtual void
+ localityConstraint_next (Type &o)
+ {
+ this->localityConstraint_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ localityConstraint_next (Type const&);
+
+ virtual void
+ localityConstraint_post (Type &o)
+ {
+ this->localityConstraint_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ localityConstraint_post (Type const&);
+
+ protected:
+ deploymentPlan ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // CDP_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cid.cpp b/modules/CIAO/DAnCE/Config_Handlers/cid.cpp
new file mode 100644
index 00000000000..32e9bb6b924
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cid.cpp
@@ -0,0 +1,6047 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "cid.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // ComponentPackageReference
+ //
+
+ ComponentPackageReference::
+ ComponentPackageReference (::CIAO::Config_Handlers::ComponentInterfaceDescription const& requiredType__)
+ :
+ ::XSCRT::Type (),
+ requiredType_ (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (requiredType__)),
+ regulator__ ()
+ {
+ requiredType_->container (this);
+ }
+
+ ComponentPackageReference::
+ ComponentPackageReference (ComponentPackageReference const& s)
+ :
+ ::XSCRT::Type (),
+ requiredUUID_ (s.requiredUUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.requiredUUID_) : 0),
+ requiredName_ (s.requiredName_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.requiredName_) : 0),
+ requiredType_ (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.requiredType_)),
+ regulator__ ()
+ {
+ if (requiredUUID_.get ()) requiredUUID_->container (this);
+ if (requiredName_.get ()) requiredName_->container (this);
+ requiredType_->container (this);
+ }
+
+ ComponentPackageReference& ComponentPackageReference::
+ operator= (ComponentPackageReference const& s)
+ {
+ if (s.requiredUUID_.get ())
+ requiredUUID (*(s.requiredUUID_));
+ else
+ requiredUUID_.reset (0);
+
+ if (s.requiredName_.get ())
+ requiredName (*(s.requiredName_));
+ else
+ requiredName_.reset (0);
+
+ requiredType (*s.requiredType_);
+
+ return *this;
+ }
+
+
+ // ComponentPackageReference
+ //
+ bool ComponentPackageReference::
+ requiredUUID_p () const
+ {
+ return requiredUUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPackageReference::
+ requiredUUID () const
+ {
+ return *requiredUUID_;
+ }
+
+ void ComponentPackageReference::
+ requiredUUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (requiredUUID_.get ())
+ {
+ *requiredUUID_ = e;
+ }
+
+ else
+ {
+ requiredUUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ requiredUUID_->container (this);
+ }
+ }
+
+ // ComponentPackageReference
+ //
+ bool ComponentPackageReference::
+ requiredName_p () const
+ {
+ return requiredName_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPackageReference::
+ requiredName () const
+ {
+ return *requiredName_;
+ }
+
+ void ComponentPackageReference::
+ requiredName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (requiredName_.get ())
+ {
+ *requiredName_ = e;
+ }
+
+ else
+ {
+ requiredName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ requiredName_->container (this);
+ }
+ }
+
+ // ComponentPackageReference
+ //
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& ComponentPackageReference::
+ requiredType () const
+ {
+ return *requiredType_;
+ }
+
+ void ComponentPackageReference::
+ requiredType (::CIAO::Config_Handlers::ComponentInterfaceDescription const& e)
+ {
+ *requiredType_ = e;
+ }
+
+
+ // SubcomponentInstantiationDescription
+ //
+
+ SubcomponentInstantiationDescription::
+ SubcomponentInstantiationDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ }
+
+ SubcomponentInstantiationDescription::
+ SubcomponentInstantiationDescription (SubcomponentInstantiationDescription const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ basePackage_ (s.basePackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageDescription (*s.basePackage_) : 0),
+ specializedConfig_ (s.specializedConfig_.get () ? new ::CIAO::Config_Handlers::PackageConfiguration (*s.specializedConfig_) : 0),
+ selectRequirement_ (s.selectRequirement_),
+ configProperty_ (s.configProperty_),
+ referencedPackage_ (s.referencedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageReference (*s.referencedPackage_) : 0),
+ importedPackage_ (s.importedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageImport (*s.importedPackage_) : 0),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
+ regulator__ ()
+ {
+ name_->container (this);
+ if (basePackage_.get ()) basePackage_->container (this);
+ if (specializedConfig_.get ()) specializedConfig_->container (this);
+ if (referencedPackage_.get ()) referencedPackage_->container (this);
+ if (importedPackage_.get ()) importedPackage_->container (this);
+ if (id_.get ()) id_->container (this);
+ }
+
+ SubcomponentInstantiationDescription& SubcomponentInstantiationDescription::
+ operator= (SubcomponentInstantiationDescription const& s)
+ {
+ name (*s.name_);
+
+ if (s.basePackage_.get ())
+ basePackage (*(s.basePackage_));
+ else
+ basePackage_.reset (0);
+
+ if (s.specializedConfig_.get ())
+ specializedConfig (*(s.specializedConfig_));
+ else
+ specializedConfig_.reset (0);
+
+ selectRequirement_ = s.selectRequirement_;
+
+ configProperty_ = s.configProperty_;
+
+ if (s.referencedPackage_.get ())
+ referencedPackage (*(s.referencedPackage_));
+ else
+ referencedPackage_.reset (0);
+
+ if (s.importedPackage_.get ())
+ importedPackage (*(s.importedPackage_));
+ else
+ importedPackage_.reset (0);
+
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // SubcomponentInstantiationDescription
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& SubcomponentInstantiationDescription::
+ name () const
+ {
+ return *name_;
+ }
+
+ void SubcomponentInstantiationDescription::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ bool SubcomponentInstantiationDescription::
+ basePackage_p () const
+ {
+ return basePackage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentPackageDescription const& SubcomponentInstantiationDescription::
+ basePackage () const
+ {
+ return *basePackage_;
+ }
+
+ void SubcomponentInstantiationDescription::
+ basePackage (::CIAO::Config_Handlers::ComponentPackageDescription const& e)
+ {
+ if (basePackage_.get ())
+ {
+ *basePackage_ = e;
+ }
+
+ else
+ {
+ basePackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > (new ::CIAO::Config_Handlers::ComponentPackageDescription (e));
+ basePackage_->container (this);
+ }
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ bool SubcomponentInstantiationDescription::
+ specializedConfig_p () const
+ {
+ return specializedConfig_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::PackageConfiguration const& SubcomponentInstantiationDescription::
+ specializedConfig () const
+ {
+ return *specializedConfig_;
+ }
+
+ void SubcomponentInstantiationDescription::
+ specializedConfig (::CIAO::Config_Handlers::PackageConfiguration const& e)
+ {
+ if (specializedConfig_.get ())
+ {
+ *specializedConfig_ = e;
+ }
+
+ else
+ {
+ specializedConfig_ = ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > (new ::CIAO::Config_Handlers::PackageConfiguration (e));
+ specializedConfig_->container (this);
+ }
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ SubcomponentInstantiationDescription::selectRequirement_iterator SubcomponentInstantiationDescription::
+ begin_selectRequirement ()
+ {
+ return selectRequirement_.begin ();
+ }
+
+ SubcomponentInstantiationDescription::selectRequirement_iterator SubcomponentInstantiationDescription::
+ end_selectRequirement ()
+ {
+ return selectRequirement_.end ();
+ }
+
+ SubcomponentInstantiationDescription::selectRequirement_const_iterator SubcomponentInstantiationDescription::
+ begin_selectRequirement () const
+ {
+ return selectRequirement_.begin ();
+ }
+
+ SubcomponentInstantiationDescription::selectRequirement_const_iterator SubcomponentInstantiationDescription::
+ end_selectRequirement () const
+ {
+ return selectRequirement_.end ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ add_selectRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ selectRequirement_.push_back (e);
+ }
+
+ size_t SubcomponentInstantiationDescription::
+ count_selectRequirement(void) const
+ {
+ return selectRequirement_.size ();
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ SubcomponentInstantiationDescription::configProperty_iterator SubcomponentInstantiationDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ SubcomponentInstantiationDescription::configProperty_iterator SubcomponentInstantiationDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ SubcomponentInstantiationDescription::configProperty_const_iterator SubcomponentInstantiationDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ SubcomponentInstantiationDescription::configProperty_const_iterator SubcomponentInstantiationDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t SubcomponentInstantiationDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ bool SubcomponentInstantiationDescription::
+ referencedPackage_p () const
+ {
+ return referencedPackage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentPackageReference const& SubcomponentInstantiationDescription::
+ referencedPackage () const
+ {
+ return *referencedPackage_;
+ }
+
+ void SubcomponentInstantiationDescription::
+ referencedPackage (::CIAO::Config_Handlers::ComponentPackageReference const& e)
+ {
+ if (referencedPackage_.get ())
+ {
+ *referencedPackage_ = e;
+ }
+
+ else
+ {
+ referencedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > (new ::CIAO::Config_Handlers::ComponentPackageReference (e));
+ referencedPackage_->container (this);
+ }
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ bool SubcomponentInstantiationDescription::
+ importedPackage_p () const
+ {
+ return importedPackage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentPackageImport const& SubcomponentInstantiationDescription::
+ importedPackage () const
+ {
+ return *importedPackage_;
+ }
+
+ void SubcomponentInstantiationDescription::
+ importedPackage (::CIAO::Config_Handlers::ComponentPackageImport const& e)
+ {
+ if (importedPackage_.get ())
+ {
+ *importedPackage_ = e;
+ }
+
+ else
+ {
+ importedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > (new ::CIAO::Config_Handlers::ComponentPackageImport (e));
+ importedPackage_->container (this);
+ }
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ bool SubcomponentInstantiationDescription::
+ id_p () const
+ {
+ return id_.get () != 0;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR > const& SubcomponentInstantiationDescription::
+ id () const
+ {
+ return *id_;
+ }
+
+ ::XMLSchema::ID< ACE_TCHAR >& SubcomponentInstantiationDescription::
+ id ()
+ {
+ return *id_;
+ }
+
+ void SubcomponentInstantiationDescription::
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ {
+ if (id_.get ())
+ {
+ *id_ = e;
+ }
+
+ else
+ {
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
+ }
+ }
+
+
+ // SubcomponentPropertyReference
+ //
+
+ SubcomponentPropertyReference::
+ SubcomponentPropertyReference (::XMLSchema::string< ACE_TCHAR > const& propertyName__,
+ ::CIAO::Config_Handlers::IdRef const& instance__)
+ :
+ propertyName_ (new ::XMLSchema::string< ACE_TCHAR > (propertyName__)),
+ instance_ (new ::CIAO::Config_Handlers::IdRef (instance__)),
+ regulator__ ()
+ {
+ propertyName_->container (this);
+ instance_->container (this);
+ }
+
+ SubcomponentPropertyReference::
+ SubcomponentPropertyReference (SubcomponentPropertyReference const& s)
+ :
+ ::XSCRT::Type (),
+ propertyName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.propertyName_)),
+ instance_ (new ::CIAO::Config_Handlers::IdRef (*s.instance_)),
+ regulator__ ()
+ {
+ propertyName_->container (this);
+ instance_->container (this);
+ }
+
+ SubcomponentPropertyReference& SubcomponentPropertyReference::
+ operator= (SubcomponentPropertyReference const& s)
+ {
+ propertyName (*s.propertyName_);
+
+ instance (*s.instance_);
+
+ return *this;
+ }
+
+
+ // SubcomponentPropertyReference
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& SubcomponentPropertyReference::
+ propertyName () const
+ {
+ return *propertyName_;
+ }
+
+ void SubcomponentPropertyReference::
+ propertyName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *propertyName_ = e;
+ }
+
+ // SubcomponentPropertyReference
+ //
+ ::CIAO::Config_Handlers::IdRef const& SubcomponentPropertyReference::
+ instance () const
+ {
+ return *instance_;
+ }
+
+ void SubcomponentPropertyReference::
+ instance (::CIAO::Config_Handlers::IdRef const& e)
+ {
+ *instance_ = e;
+ }
+
+
+ // AssemblyPropertyMapping
+ //
+
+ AssemblyPropertyMapping::
+ AssemblyPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& externalName__)
+ :
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ externalName_ (new ::XMLSchema::string< ACE_TCHAR > (externalName__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ externalName_->container (this);
+ }
+
+ AssemblyPropertyMapping::
+ AssemblyPropertyMapping (AssemblyPropertyMapping const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ externalName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.externalName_)),
+ delegatesTo_ (s.delegatesTo_),
+ regulator__ ()
+ {
+ name_->container (this);
+ externalName_->container (this);
+ }
+
+ AssemblyPropertyMapping& AssemblyPropertyMapping::
+ operator= (AssemblyPropertyMapping const& s)
+ {
+ name (*s.name_);
+
+ externalName (*s.externalName_);
+
+ delegatesTo_ = s.delegatesTo_;
+
+ return *this;
+ }
+
+
+ // AssemblyPropertyMapping
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& AssemblyPropertyMapping::
+ name () const
+ {
+ return *name_;
+ }
+
+ void AssemblyPropertyMapping::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // AssemblyPropertyMapping
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& AssemblyPropertyMapping::
+ externalName () const
+ {
+ return *externalName_;
+ }
+
+ void AssemblyPropertyMapping::
+ externalName (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *externalName_ = e;
+ }
+
+ // AssemblyPropertyMapping
+ //
+ AssemblyPropertyMapping::delegatesTo_iterator AssemblyPropertyMapping::
+ begin_delegatesTo ()
+ {
+ return delegatesTo_.begin ();
+ }
+
+ AssemblyPropertyMapping::delegatesTo_iterator AssemblyPropertyMapping::
+ end_delegatesTo ()
+ {
+ return delegatesTo_.end ();
+ }
+
+ AssemblyPropertyMapping::delegatesTo_const_iterator AssemblyPropertyMapping::
+ begin_delegatesTo () const
+ {
+ return delegatesTo_.begin ();
+ }
+
+ AssemblyPropertyMapping::delegatesTo_const_iterator AssemblyPropertyMapping::
+ end_delegatesTo () const
+ {
+ return delegatesTo_.end ();
+ }
+
+ void AssemblyPropertyMapping::
+ add_delegatesTo (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > const& e)
+ {
+ delegatesTo_.push_back (e);
+ }
+
+ size_t AssemblyPropertyMapping::
+ count_delegatesTo(void) const
+ {
+ return delegatesTo_.size ();
+ }
+
+
+ // LocalityKind
+ //
+
+ LocalityKind::Value LocalityKind::
+ integral () const
+ {
+ return v_;
+ }
+
+ bool
+ operator== (::CIAO::Config_Handlers::LocalityKind const& a, ::CIAO::Config_Handlers::LocalityKind const& b)
+ {
+ return a.v_ == b.v_;
+ }
+
+ bool
+ operator!= (::CIAO::Config_Handlers::LocalityKind const& a, ::CIAO::Config_Handlers::LocalityKind const& b)
+ {
+ return a.v_ != b.v_;
+ }
+
+ LocalityKind::
+ LocalityKind (LocalityKind::Value v)
+ : v_ (v)
+ {
+ }
+
+ // Locality
+ //
+
+ Locality::
+ Locality (::CIAO::Config_Handlers::LocalityKind const& constraint__,
+ ::CIAO::Config_Handlers::IdRef const& constrainedInstance__)
+ :
+ constraint_ (new ::CIAO::Config_Handlers::LocalityKind (constraint__)),
+ constrainedInstance_ (new ::CIAO::Config_Handlers::IdRef (constrainedInstance__)),
+ regulator__ ()
+ {
+ constraint_->container (this);
+ constrainedInstance_->container (this);
+ }
+
+ Locality::
+ Locality (Locality const& s)
+ :
+ ::XSCRT::Type (),
+ constraint_ (new ::CIAO::Config_Handlers::LocalityKind (*s.constraint_)),
+ constrainedInstance_ (new ::CIAO::Config_Handlers::IdRef (*s.constrainedInstance_)),
+ regulator__ ()
+ {
+ constraint_->container (this);
+ constrainedInstance_->container (this);
+ }
+
+ Locality& Locality::
+ operator= (Locality const& s)
+ {
+ constraint (*s.constraint_);
+
+ constrainedInstance (*s.constrainedInstance_);
+
+ return *this;
+ }
+
+
+ // Locality
+ //
+ ::CIAO::Config_Handlers::LocalityKind const& Locality::
+ constraint () const
+ {
+ return *constraint_;
+ }
+
+ void Locality::
+ constraint (::CIAO::Config_Handlers::LocalityKind const& e)
+ {
+ *constraint_ = e;
+ }
+
+ // Locality
+ //
+ ::CIAO::Config_Handlers::IdRef const& Locality::
+ constrainedInstance () const
+ {
+ return *constrainedInstance_;
+ }
+
+ void Locality::
+ constrainedInstance (::CIAO::Config_Handlers::IdRef const& e)
+ {
+ *constrainedInstance_ = e;
+ }
+
+
+ // ComponentAssemblyDescription
+ //
+
+ ComponentAssemblyDescription::
+ ComponentAssemblyDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ ComponentAssemblyDescription::
+ ComponentAssemblyDescription (ComponentAssemblyDescription const& s)
+ :
+ ::XSCRT::Type (),
+ instance_ (s.instance_),
+ connection_ (s.connection_),
+ externalProperty_ (s.externalProperty_),
+ locality_ (s.locality_),
+ regulator__ ()
+ {
+ }
+
+ ComponentAssemblyDescription& ComponentAssemblyDescription::
+ operator= (ComponentAssemblyDescription const& s)
+ {
+ instance_ = s.instance_;
+
+ connection_ = s.connection_;
+
+ externalProperty_ = s.externalProperty_;
+
+ locality_ = s.locality_;
+
+ return *this;
+ }
+
+
+ // ComponentAssemblyDescription
+ //
+ ComponentAssemblyDescription::instance_iterator ComponentAssemblyDescription::
+ begin_instance ()
+ {
+ return instance_.begin ();
+ }
+
+ ComponentAssemblyDescription::instance_iterator ComponentAssemblyDescription::
+ end_instance ()
+ {
+ return instance_.end ();
+ }
+
+ ComponentAssemblyDescription::instance_const_iterator ComponentAssemblyDescription::
+ begin_instance () const
+ {
+ return instance_.begin ();
+ }
+
+ ComponentAssemblyDescription::instance_const_iterator ComponentAssemblyDescription::
+ end_instance () const
+ {
+ return instance_.end ();
+ }
+
+ void ComponentAssemblyDescription::
+ add_instance (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > const& e)
+ {
+ instance_.push_back (e);
+ }
+
+ size_t ComponentAssemblyDescription::
+ count_instance(void) const
+ {
+ return instance_.size ();
+ }
+
+ // ComponentAssemblyDescription
+ //
+ ComponentAssemblyDescription::connection_iterator ComponentAssemblyDescription::
+ begin_connection ()
+ {
+ return connection_.begin ();
+ }
+
+ ComponentAssemblyDescription::connection_iterator ComponentAssemblyDescription::
+ end_connection ()
+ {
+ return connection_.end ();
+ }
+
+ ComponentAssemblyDescription::connection_const_iterator ComponentAssemblyDescription::
+ begin_connection () const
+ {
+ return connection_.begin ();
+ }
+
+ ComponentAssemblyDescription::connection_const_iterator ComponentAssemblyDescription::
+ end_connection () const
+ {
+ return connection_.end ();
+ }
+
+ void ComponentAssemblyDescription::
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > const& e)
+ {
+ connection_.push_back (e);
+ }
+
+ size_t ComponentAssemblyDescription::
+ count_connection(void) const
+ {
+ return connection_.size ();
+ }
+
+ // ComponentAssemblyDescription
+ //
+ ComponentAssemblyDescription::externalProperty_iterator ComponentAssemblyDescription::
+ begin_externalProperty ()
+ {
+ return externalProperty_.begin ();
+ }
+
+ ComponentAssemblyDescription::externalProperty_iterator ComponentAssemblyDescription::
+ end_externalProperty ()
+ {
+ return externalProperty_.end ();
+ }
+
+ ComponentAssemblyDescription::externalProperty_const_iterator ComponentAssemblyDescription::
+ begin_externalProperty () const
+ {
+ return externalProperty_.begin ();
+ }
+
+ ComponentAssemblyDescription::externalProperty_const_iterator ComponentAssemblyDescription::
+ end_externalProperty () const
+ {
+ return externalProperty_.end ();
+ }
+
+ void ComponentAssemblyDescription::
+ add_externalProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > const& e)
+ {
+ externalProperty_.push_back (e);
+ }
+
+ size_t ComponentAssemblyDescription::
+ count_externalProperty(void) const
+ {
+ return externalProperty_.size ();
+ }
+
+ // ComponentAssemblyDescription
+ //
+ ComponentAssemblyDescription::locality_iterator ComponentAssemblyDescription::
+ begin_locality ()
+ {
+ return locality_.begin ();
+ }
+
+ ComponentAssemblyDescription::locality_iterator ComponentAssemblyDescription::
+ end_locality ()
+ {
+ return locality_.end ();
+ }
+
+ ComponentAssemblyDescription::locality_const_iterator ComponentAssemblyDescription::
+ begin_locality () const
+ {
+ return locality_.begin ();
+ }
+
+ ComponentAssemblyDescription::locality_const_iterator ComponentAssemblyDescription::
+ end_locality () const
+ {
+ return locality_.end ();
+ }
+
+ void ComponentAssemblyDescription::
+ add_locality (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Locality, ACE_Null_Mutex > const& e)
+ {
+ locality_.push_back (e);
+ }
+
+ size_t ComponentAssemblyDescription::
+ count_locality(void) const
+ {
+ return locality_.size ();
+ }
+
+
+ // MonolithicImplementationDescription
+ //
+
+ MonolithicImplementationDescription::
+ MonolithicImplementationDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ MonolithicImplementationDescription::
+ MonolithicImplementationDescription (MonolithicImplementationDescription const& s)
+ :
+ ::XSCRT::Type (),
+ nodeExecParameter_ (s.nodeExecParameter_),
+ componentExecParameter_ (s.componentExecParameter_),
+ deployRequirement_ (s.deployRequirement_),
+ primaryArtifact_ (s.primaryArtifact_),
+ regulator__ ()
+ {
+ }
+
+ MonolithicImplementationDescription& MonolithicImplementationDescription::
+ operator= (MonolithicImplementationDescription const& s)
+ {
+ nodeExecParameter_ = s.nodeExecParameter_;
+
+ componentExecParameter_ = s.componentExecParameter_;
+
+ deployRequirement_ = s.deployRequirement_;
+
+ primaryArtifact_ = s.primaryArtifact_;
+
+ return *this;
+ }
+
+
+ // MonolithicImplementationDescription
+ //
+ MonolithicImplementationDescription::nodeExecParameter_iterator MonolithicImplementationDescription::
+ begin_nodeExecParameter ()
+ {
+ return nodeExecParameter_.begin ();
+ }
+
+ MonolithicImplementationDescription::nodeExecParameter_iterator MonolithicImplementationDescription::
+ end_nodeExecParameter ()
+ {
+ return nodeExecParameter_.end ();
+ }
+
+ MonolithicImplementationDescription::nodeExecParameter_const_iterator MonolithicImplementationDescription::
+ begin_nodeExecParameter () const
+ {
+ return nodeExecParameter_.begin ();
+ }
+
+ MonolithicImplementationDescription::nodeExecParameter_const_iterator MonolithicImplementationDescription::
+ end_nodeExecParameter () const
+ {
+ return nodeExecParameter_.end ();
+ }
+
+ void MonolithicImplementationDescription::
+ add_nodeExecParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ nodeExecParameter_.push_back (e);
+ }
+
+ size_t MonolithicImplementationDescription::
+ count_nodeExecParameter(void) const
+ {
+ return nodeExecParameter_.size ();
+ }
+
+ // MonolithicImplementationDescription
+ //
+ MonolithicImplementationDescription::componentExecParameter_iterator MonolithicImplementationDescription::
+ begin_componentExecParameter ()
+ {
+ return componentExecParameter_.begin ();
+ }
+
+ MonolithicImplementationDescription::componentExecParameter_iterator MonolithicImplementationDescription::
+ end_componentExecParameter ()
+ {
+ return componentExecParameter_.end ();
+ }
+
+ MonolithicImplementationDescription::componentExecParameter_const_iterator MonolithicImplementationDescription::
+ begin_componentExecParameter () const
+ {
+ return componentExecParameter_.begin ();
+ }
+
+ MonolithicImplementationDescription::componentExecParameter_const_iterator MonolithicImplementationDescription::
+ end_componentExecParameter () const
+ {
+ return componentExecParameter_.end ();
+ }
+
+ void MonolithicImplementationDescription::
+ add_componentExecParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ componentExecParameter_.push_back (e);
+ }
+
+ size_t MonolithicImplementationDescription::
+ count_componentExecParameter(void) const
+ {
+ return componentExecParameter_.size ();
+ }
+
+ // MonolithicImplementationDescription
+ //
+ MonolithicImplementationDescription::deployRequirement_iterator MonolithicImplementationDescription::
+ begin_deployRequirement ()
+ {
+ return deployRequirement_.begin ();
+ }
+
+ MonolithicImplementationDescription::deployRequirement_iterator MonolithicImplementationDescription::
+ end_deployRequirement ()
+ {
+ return deployRequirement_.end ();
+ }
+
+ MonolithicImplementationDescription::deployRequirement_const_iterator MonolithicImplementationDescription::
+ begin_deployRequirement () const
+ {
+ return deployRequirement_.begin ();
+ }
+
+ MonolithicImplementationDescription::deployRequirement_const_iterator MonolithicImplementationDescription::
+ end_deployRequirement () const
+ {
+ return deployRequirement_.end ();
+ }
+
+ void MonolithicImplementationDescription::
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > const& e)
+ {
+ deployRequirement_.push_back (e);
+ }
+
+ size_t MonolithicImplementationDescription::
+ count_deployRequirement(void) const
+ {
+ return deployRequirement_.size ();
+ }
+
+ // MonolithicImplementationDescription
+ //
+ MonolithicImplementationDescription::primaryArtifact_iterator MonolithicImplementationDescription::
+ begin_primaryArtifact ()
+ {
+ return primaryArtifact_.begin ();
+ }
+
+ MonolithicImplementationDescription::primaryArtifact_iterator MonolithicImplementationDescription::
+ end_primaryArtifact ()
+ {
+ return primaryArtifact_.end ();
+ }
+
+ MonolithicImplementationDescription::primaryArtifact_const_iterator MonolithicImplementationDescription::
+ begin_primaryArtifact () const
+ {
+ return primaryArtifact_.begin ();
+ }
+
+ MonolithicImplementationDescription::primaryArtifact_const_iterator MonolithicImplementationDescription::
+ end_primaryArtifact () const
+ {
+ return primaryArtifact_.end ();
+ }
+
+ void MonolithicImplementationDescription::
+ add_primaryArtifact (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& e)
+ {
+ primaryArtifact_.push_back (e);
+ }
+
+ size_t MonolithicImplementationDescription::
+ count_primaryArtifact(void) const
+ {
+ return primaryArtifact_.size ();
+ }
+
+
+ // ComponentImplementationDescription
+ //
+
+ ComponentImplementationDescription::
+ ComponentImplementationDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ ComponentImplementationDescription::
+ ComponentImplementationDescription (ComponentImplementationDescription const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ implements_ (s.implements_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.implements_) : 0),
+ assemblyImpl_ (s.assemblyImpl_.get () ? new ::CIAO::Config_Handlers::ComponentAssemblyDescription (*s.assemblyImpl_) : 0),
+ monolithicImpl_ (s.monolithicImpl_.get () ? new ::CIAO::Config_Handlers::MonolithicImplementationDescription (*s.monolithicImpl_) : 0),
+ configProperty_ (s.configProperty_),
+ capability_ (s.capability_),
+ dependsOn_ (s.dependsOn_),
+ infoProperty_ (s.infoProperty_),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (implements_.get ()) implements_->container (this);
+ if (assemblyImpl_.get ()) assemblyImpl_->container (this);
+ if (monolithicImpl_.get ()) monolithicImpl_->container (this);
+ if (href_.get ()) href_->container (this);
+ }
+
+ ComponentImplementationDescription& ComponentImplementationDescription::
+ operator= (ComponentImplementationDescription const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.implements_.get ())
+ implements (*(s.implements_));
+ else
+ implements_.reset (0);
+
+ if (s.assemblyImpl_.get ())
+ assemblyImpl (*(s.assemblyImpl_));
+ else
+ assemblyImpl_.reset (0);
+
+ if (s.monolithicImpl_.get ())
+ monolithicImpl (*(s.monolithicImpl_));
+ else
+ monolithicImpl_.reset (0);
+
+ configProperty_ = s.configProperty_;
+
+ capability_ = s.capability_;
+
+ dependsOn_ = s.dependsOn_;
+
+ infoProperty_ = s.infoProperty_;
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ComponentImplementationDescription
+ //
+ bool ComponentImplementationDescription::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentImplementationDescription::
+ label () const
+ {
+ return *label_;
+ }
+
+ void ComponentImplementationDescription::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // ComponentImplementationDescription
+ //
+ bool ComponentImplementationDescription::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentImplementationDescription::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void ComponentImplementationDescription::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // ComponentImplementationDescription
+ //
+ bool ComponentImplementationDescription::
+ implements_p () const
+ {
+ return implements_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& ComponentImplementationDescription::
+ implements () const
+ {
+ return *implements_;
+ }
+
+ void ComponentImplementationDescription::
+ implements (::CIAO::Config_Handlers::ComponentInterfaceDescription const& e)
+ {
+ if (implements_.get ())
+ {
+ *implements_ = e;
+ }
+
+ else
+ {
+ implements_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (e));
+ implements_->container (this);
+ }
+ }
+
+ // ComponentImplementationDescription
+ //
+ bool ComponentImplementationDescription::
+ assemblyImpl_p () const
+ {
+ return assemblyImpl_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription const& ComponentImplementationDescription::
+ assemblyImpl () const
+ {
+ return *assemblyImpl_;
+ }
+
+ void ComponentImplementationDescription::
+ assemblyImpl (::CIAO::Config_Handlers::ComponentAssemblyDescription const& e)
+ {
+ if (assemblyImpl_.get ())
+ {
+ *assemblyImpl_ = e;
+ }
+
+ else
+ {
+ assemblyImpl_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentAssemblyDescription > (new ::CIAO::Config_Handlers::ComponentAssemblyDescription (e));
+ assemblyImpl_->container (this);
+ }
+ }
+
+ // ComponentImplementationDescription
+ //
+ bool ComponentImplementationDescription::
+ monolithicImpl_p () const
+ {
+ return monolithicImpl_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription const& ComponentImplementationDescription::
+ monolithicImpl () const
+ {
+ return *monolithicImpl_;
+ }
+
+ void ComponentImplementationDescription::
+ monolithicImpl (::CIAO::Config_Handlers::MonolithicImplementationDescription const& e)
+ {
+ if (monolithicImpl_.get ())
+ {
+ *monolithicImpl_ = e;
+ }
+
+ else
+ {
+ monolithicImpl_ = ::std::auto_ptr< ::CIAO::Config_Handlers::MonolithicImplementationDescription > (new ::CIAO::Config_Handlers::MonolithicImplementationDescription (e));
+ monolithicImpl_->container (this);
+ }
+ }
+
+ // ComponentImplementationDescription
+ //
+ ComponentImplementationDescription::configProperty_iterator ComponentImplementationDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ ComponentImplementationDescription::configProperty_iterator ComponentImplementationDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ ComponentImplementationDescription::configProperty_const_iterator ComponentImplementationDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ ComponentImplementationDescription::configProperty_const_iterator ComponentImplementationDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void ComponentImplementationDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t ComponentImplementationDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // ComponentImplementationDescription
+ //
+ ComponentImplementationDescription::capability_iterator ComponentImplementationDescription::
+ begin_capability ()
+ {
+ return capability_.begin ();
+ }
+
+ ComponentImplementationDescription::capability_iterator ComponentImplementationDescription::
+ end_capability ()
+ {
+ return capability_.end ();
+ }
+
+ ComponentImplementationDescription::capability_const_iterator ComponentImplementationDescription::
+ begin_capability () const
+ {
+ return capability_.begin ();
+ }
+
+ ComponentImplementationDescription::capability_const_iterator ComponentImplementationDescription::
+ end_capability () const
+ {
+ return capability_.end ();
+ }
+
+ void ComponentImplementationDescription::
+ add_capability (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > const& e)
+ {
+ capability_.push_back (e);
+ }
+
+ size_t ComponentImplementationDescription::
+ count_capability(void) const
+ {
+ return capability_.size ();
+ }
+
+ // ComponentImplementationDescription
+ //
+ ComponentImplementationDescription::dependsOn_iterator ComponentImplementationDescription::
+ begin_dependsOn ()
+ {
+ return dependsOn_.begin ();
+ }
+
+ ComponentImplementationDescription::dependsOn_iterator ComponentImplementationDescription::
+ end_dependsOn ()
+ {
+ return dependsOn_.end ();
+ }
+
+ ComponentImplementationDescription::dependsOn_const_iterator ComponentImplementationDescription::
+ begin_dependsOn () const
+ {
+ return dependsOn_.begin ();
+ }
+
+ ComponentImplementationDescription::dependsOn_const_iterator ComponentImplementationDescription::
+ end_dependsOn () const
+ {
+ return dependsOn_.end ();
+ }
+
+ void ComponentImplementationDescription::
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& e)
+ {
+ dependsOn_.push_back (e);
+ }
+
+ size_t ComponentImplementationDescription::
+ count_dependsOn(void) const
+ {
+ return dependsOn_.size ();
+ }
+
+ // ComponentImplementationDescription
+ //
+ ComponentImplementationDescription::infoProperty_iterator ComponentImplementationDescription::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ ComponentImplementationDescription::infoProperty_iterator ComponentImplementationDescription::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ ComponentImplementationDescription::infoProperty_const_iterator ComponentImplementationDescription::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ ComponentImplementationDescription::infoProperty_const_iterator ComponentImplementationDescription::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void ComponentImplementationDescription::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t ComponentImplementationDescription::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // ComponentImplementationDescription
+ //
+ bool ComponentImplementationDescription::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentImplementationDescription::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& ComponentImplementationDescription::
+ href ()
+ {
+ return *href_;
+ }
+
+ void ComponentImplementationDescription::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+
+
+ // ConnectorImplementationDescription
+ //
+
+ ConnectorImplementationDescription::
+ ConnectorImplementationDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ ConnectorImplementationDescription::
+ ConnectorImplementationDescription (ConnectorImplementationDescription const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ implements_ (s.implements_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.implements_) : 0),
+ assemblyImpl_ (s.assemblyImpl_.get () ? new ::CIAO::Config_Handlers::ComponentAssemblyDescription (*s.assemblyImpl_) : 0),
+ monolithicImpl_ (s.monolithicImpl_.get () ? new ::CIAO::Config_Handlers::MonolithicImplementationDescription (*s.monolithicImpl_) : 0),
+ configProperty_ (s.configProperty_),
+ capability_ (s.capability_),
+ dependsOn_ (s.dependsOn_),
+ infoProperty_ (s.infoProperty_),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (implements_.get ()) implements_->container (this);
+ if (assemblyImpl_.get ()) assemblyImpl_->container (this);
+ if (monolithicImpl_.get ()) monolithicImpl_->container (this);
+ if (href_.get ()) href_->container (this);
+ }
+
+ ConnectorImplementationDescription& ConnectorImplementationDescription::
+ operator= (ConnectorImplementationDescription const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.implements_.get ())
+ implements (*(s.implements_));
+ else
+ implements_.reset (0);
+
+ if (s.assemblyImpl_.get ())
+ assemblyImpl (*(s.assemblyImpl_));
+ else
+ assemblyImpl_.reset (0);
+
+ if (s.monolithicImpl_.get ())
+ monolithicImpl (*(s.monolithicImpl_));
+ else
+ monolithicImpl_.reset (0);
+
+ configProperty_ = s.configProperty_;
+
+ capability_ = s.capability_;
+
+ dependsOn_ = s.dependsOn_;
+
+ infoProperty_ = s.infoProperty_;
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ConnectorImplementationDescription
+ //
+ bool ConnectorImplementationDescription::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectorImplementationDescription::
+ label () const
+ {
+ return *label_;
+ }
+
+ void ConnectorImplementationDescription::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // ConnectorImplementationDescription
+ //
+ bool ConnectorImplementationDescription::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectorImplementationDescription::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void ConnectorImplementationDescription::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // ConnectorImplementationDescription
+ //
+ bool ConnectorImplementationDescription::
+ implements_p () const
+ {
+ return implements_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& ConnectorImplementationDescription::
+ implements () const
+ {
+ return *implements_;
+ }
+
+ void ConnectorImplementationDescription::
+ implements (::CIAO::Config_Handlers::ComponentInterfaceDescription const& e)
+ {
+ if (implements_.get ())
+ {
+ *implements_ = e;
+ }
+
+ else
+ {
+ implements_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (e));
+ implements_->container (this);
+ }
+ }
+
+ // ConnectorImplementationDescription
+ //
+ bool ConnectorImplementationDescription::
+ assemblyImpl_p () const
+ {
+ return assemblyImpl_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription const& ConnectorImplementationDescription::
+ assemblyImpl () const
+ {
+ return *assemblyImpl_;
+ }
+
+ void ConnectorImplementationDescription::
+ assemblyImpl (::CIAO::Config_Handlers::ComponentAssemblyDescription const& e)
+ {
+ if (assemblyImpl_.get ())
+ {
+ *assemblyImpl_ = e;
+ }
+
+ else
+ {
+ assemblyImpl_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentAssemblyDescription > (new ::CIAO::Config_Handlers::ComponentAssemblyDescription (e));
+ assemblyImpl_->container (this);
+ }
+ }
+
+ // ConnectorImplementationDescription
+ //
+ bool ConnectorImplementationDescription::
+ monolithicImpl_p () const
+ {
+ return monolithicImpl_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription const& ConnectorImplementationDescription::
+ monolithicImpl () const
+ {
+ return *monolithicImpl_;
+ }
+
+ void ConnectorImplementationDescription::
+ monolithicImpl (::CIAO::Config_Handlers::MonolithicImplementationDescription const& e)
+ {
+ if (monolithicImpl_.get ())
+ {
+ *monolithicImpl_ = e;
+ }
+
+ else
+ {
+ monolithicImpl_ = ::std::auto_ptr< ::CIAO::Config_Handlers::MonolithicImplementationDescription > (new ::CIAO::Config_Handlers::MonolithicImplementationDescription (e));
+ monolithicImpl_->container (this);
+ }
+ }
+
+ // ConnectorImplementationDescription
+ //
+ ConnectorImplementationDescription::configProperty_iterator ConnectorImplementationDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ ConnectorImplementationDescription::configProperty_iterator ConnectorImplementationDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ ConnectorImplementationDescription::configProperty_const_iterator ConnectorImplementationDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ ConnectorImplementationDescription::configProperty_const_iterator ConnectorImplementationDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void ConnectorImplementationDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t ConnectorImplementationDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // ConnectorImplementationDescription
+ //
+ ConnectorImplementationDescription::capability_iterator ConnectorImplementationDescription::
+ begin_capability ()
+ {
+ return capability_.begin ();
+ }
+
+ ConnectorImplementationDescription::capability_iterator ConnectorImplementationDescription::
+ end_capability ()
+ {
+ return capability_.end ();
+ }
+
+ ConnectorImplementationDescription::capability_const_iterator ConnectorImplementationDescription::
+ begin_capability () const
+ {
+ return capability_.begin ();
+ }
+
+ ConnectorImplementationDescription::capability_const_iterator ConnectorImplementationDescription::
+ end_capability () const
+ {
+ return capability_.end ();
+ }
+
+ void ConnectorImplementationDescription::
+ add_capability (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > const& e)
+ {
+ capability_.push_back (e);
+ }
+
+ size_t ConnectorImplementationDescription::
+ count_capability(void) const
+ {
+ return capability_.size ();
+ }
+
+ // ConnectorImplementationDescription
+ //
+ ConnectorImplementationDescription::dependsOn_iterator ConnectorImplementationDescription::
+ begin_dependsOn ()
+ {
+ return dependsOn_.begin ();
+ }
+
+ ConnectorImplementationDescription::dependsOn_iterator ConnectorImplementationDescription::
+ end_dependsOn ()
+ {
+ return dependsOn_.end ();
+ }
+
+ ConnectorImplementationDescription::dependsOn_const_iterator ConnectorImplementationDescription::
+ begin_dependsOn () const
+ {
+ return dependsOn_.begin ();
+ }
+
+ ConnectorImplementationDescription::dependsOn_const_iterator ConnectorImplementationDescription::
+ end_dependsOn () const
+ {
+ return dependsOn_.end ();
+ }
+
+ void ConnectorImplementationDescription::
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& e)
+ {
+ dependsOn_.push_back (e);
+ }
+
+ size_t ConnectorImplementationDescription::
+ count_dependsOn(void) const
+ {
+ return dependsOn_.size ();
+ }
+
+ // ConnectorImplementationDescription
+ //
+ ConnectorImplementationDescription::infoProperty_iterator ConnectorImplementationDescription::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ ConnectorImplementationDescription::infoProperty_iterator ConnectorImplementationDescription::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ ConnectorImplementationDescription::infoProperty_const_iterator ConnectorImplementationDescription::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ ConnectorImplementationDescription::infoProperty_const_iterator ConnectorImplementationDescription::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void ConnectorImplementationDescription::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t ConnectorImplementationDescription::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // ConnectorImplementationDescription
+ //
+ bool ConnectorImplementationDescription::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectorImplementationDescription::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& ConnectorImplementationDescription::
+ href ()
+ {
+ return *href_;
+ }
+
+ void ConnectorImplementationDescription::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // ComponentPackageReference
+ //
+
+ ComponentPackageReference::
+ ComponentPackageReference (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("requiredUUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ requiredUUID (t);
+ }
+
+ else if (n == ACE_TEXT("requiredName"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ requiredName (t);
+ }
+
+ else if (n == ACE_TEXT("requiredType"))
+ {
+ requiredType_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (e));
+ requiredType_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+
+ SubcomponentInstantiationDescription::
+ SubcomponentInstantiationDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("basePackage"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageDescription t (e);
+ basePackage (t);
+ }
+
+ else if (n == ACE_TEXT("specializedConfig"))
+ {
+ ::CIAO::Config_Handlers::PackageConfiguration t (e);
+ specializedConfig (t);
+ }
+
+ else if (n == ACE_TEXT("selectRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_selectRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("referencedPackage"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageReference t (e);
+ referencedPackage (t);
+ }
+
+ else if (n == ACE_TEXT("importedPackage"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageImport t (e);
+ importedPackage (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("id"))
+ {
+ ::XMLSchema::ID< ACE_TCHAR > t (a);
+ id (t);
+ std::basic_string<ACE_TCHAR> temp ((*id_).c_str());
+ (*ACE_Singleton<ID_Map::TSS_ID_Map, ACE_Null_Mutex>::instance())->
+ add_id(temp, dynamic_cast<XSCRT::Type*> (this));
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // SubcomponentPropertyReference
+ //
+
+ SubcomponentPropertyReference::
+ SubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("propertyName"))
+ {
+ propertyName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ propertyName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("instance"))
+ {
+ instance_ = ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > (new ::CIAO::Config_Handlers::IdRef (e));
+ instance_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // AssemblyPropertyMapping
+ //
+
+ AssemblyPropertyMapping::
+ AssemblyPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("externalName"))
+ {
+ externalName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ externalName_->container (this);
+ }
+
+ else if (n == ACE_TEXT("delegatesTo"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SubcomponentPropertyReference (e));
+ add_delegatesTo (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // LocalityKind
+ //
+
+ LocalityKind::
+ LocalityKind (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ : ::XSCRT::Type (e)
+ {
+ ::std::basic_string< ACE_TCHAR > v (e.value ());
+
+ if (v == ACE_TEXT ("SameNodeAnyProcess")) v_ = SameNodeAnyProcess_l;
+ else if (v == ACE_TEXT ("SameNodeSameProcess")) v_ = SameNodeSameProcess_l;
+ else if (v == ACE_TEXT ("SameNodeDifferentProcess")) v_ = SameNodeDifferentProcess_l;
+ else if (v == ACE_TEXT ("DifferentNode")) v_ = DifferentNode_l;
+ else if (v == ACE_TEXT ("DifferentProcess")) v_ = DifferentProcess_l;
+ else if (v == ACE_TEXT ("NoConstraint")) v_ = NoConstraint_l;
+ else
+ {
+ }
+ }
+
+ LocalityKind::
+ LocalityKind (::XSCRT::XML::Attribute< ACE_TCHAR > const& a)
+ : ::XSCRT::Type (a)
+ {
+ ::std::basic_string< ACE_TCHAR > v (a.value ());
+
+ if (v == ACE_TEXT ("SameNodeAnyProcess")) v_ = SameNodeAnyProcess_l;
+ else if (v == ACE_TEXT ("SameNodeSameProcess")) v_ = SameNodeSameProcess_l;
+ else if (v == ACE_TEXT ("SameNodeDifferentProcess")) v_ = SameNodeDifferentProcess_l;
+ else if (v == ACE_TEXT ("DifferentNode")) v_ = DifferentNode_l;
+ else if (v == ACE_TEXT ("DifferentProcess")) v_ = DifferentProcess_l;
+ else if (v == ACE_TEXT ("NoConstraint")) v_ = NoConstraint_l;
+ else
+ {
+ }
+ }
+
+ LocalityKind const LocalityKind::SameNodeAnyProcess (LocalityKind::SameNodeAnyProcess_l);
+ LocalityKind const LocalityKind::SameNodeSameProcess (LocalityKind::SameNodeSameProcess_l);
+ LocalityKind const LocalityKind::SameNodeDifferentProcess (LocalityKind::SameNodeDifferentProcess_l);
+ LocalityKind const LocalityKind::DifferentNode (LocalityKind::DifferentNode_l);
+ LocalityKind const LocalityKind::DifferentProcess (LocalityKind::DifferentProcess_l);
+ LocalityKind const LocalityKind::NoConstraint (LocalityKind::NoConstraint_l);
+
+ // Locality
+ //
+
+ Locality::
+ Locality (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("constraint"))
+ {
+ constraint_ = ::std::auto_ptr< ::CIAO::Config_Handlers::LocalityKind > (new ::CIAO::Config_Handlers::LocalityKind (e));
+ constraint_->container (this);
+ }
+
+ else if (n == ACE_TEXT("constrainedInstance"))
+ {
+ constrainedInstance_ = ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > (new ::CIAO::Config_Handlers::IdRef (e));
+ constrainedInstance_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ComponentAssemblyDescription
+ //
+
+ ComponentAssemblyDescription::
+ ComponentAssemblyDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("instance"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SubcomponentInstantiationDescription (e));
+ add_instance (t);
+ }
+
+ else if (n == ACE_TEXT("connection"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::AssemblyConnectionDescription (e));
+ add_connection (t);
+ }
+
+ else if (n == ACE_TEXT("externalProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::AssemblyPropertyMapping (e));
+ add_externalProperty (t);
+ }
+
+ else if (n == ACE_TEXT("locality"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Locality, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Locality (e));
+ add_locality (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // MonolithicImplementationDescription
+ //
+
+ MonolithicImplementationDescription::
+ MonolithicImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("nodeExecParameter"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_nodeExecParameter (t);
+ }
+
+ else if (n == ACE_TEXT("componentExecParameter"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_componentExecParameter (t);
+ }
+
+ else if (n == ACE_TEXT("deployRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationRequirement (e));
+ add_deployRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("primaryArtifact"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::NamedImplementationArtifact (e));
+ add_primaryArtifact (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ComponentImplementationDescription
+ //
+
+ ComponentImplementationDescription::
+ ComponentImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("implements"))
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription t (e);
+ implements (t);
+ }
+
+ else if (n == ACE_TEXT("assemblyImpl"))
+ {
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription t (e);
+ assemblyImpl (t);
+ }
+
+ else if (n == ACE_TEXT("monolithicImpl"))
+ {
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription t (e);
+ monolithicImpl (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("capability"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Capability (e));
+ add_capability (t);
+ }
+
+ else if (n == ACE_TEXT("dependsOn"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationDependency (e));
+ add_dependsOn (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ConnectorImplementationDescription
+ //
+
+ ConnectorImplementationDescription::
+ ConnectorImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("implements"))
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription t (e);
+ implements (t);
+ }
+
+ else if (n == ACE_TEXT("assemblyImpl"))
+ {
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription t (e);
+ assemblyImpl (t);
+ }
+
+ else if (n == ACE_TEXT("monolithicImpl"))
+ {
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription t (e);
+ monolithicImpl (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("capability"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Capability (e));
+ add_capability (t);
+ }
+
+ else if (n == ACE_TEXT("dependsOn"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationDependency (e));
+ add_dependsOn (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct ComponentPackageReferenceTypeInfoInitializer
+ {
+ ComponentPackageReferenceTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPackageReference));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentPackageReferenceTypeInfoInitializer ComponentPackageReferenceTypeInfoInitializer_;
+
+ struct SubcomponentInstantiationDescriptionTypeInfoInitializer
+ {
+ SubcomponentInstantiationDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SubcomponentInstantiationDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SubcomponentInstantiationDescriptionTypeInfoInitializer SubcomponentInstantiationDescriptionTypeInfoInitializer_;
+
+ struct SubcomponentPropertyReferenceTypeInfoInitializer
+ {
+ SubcomponentPropertyReferenceTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SubcomponentPropertyReference));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ SubcomponentPropertyReferenceTypeInfoInitializer SubcomponentPropertyReferenceTypeInfoInitializer_;
+
+ struct AssemblyPropertyMappingTypeInfoInitializer
+ {
+ AssemblyPropertyMappingTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::AssemblyPropertyMapping));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ AssemblyPropertyMappingTypeInfoInitializer AssemblyPropertyMappingTypeInfoInitializer_;
+
+ struct LocalityKindTypeInfoInitializer
+ {
+ LocalityKindTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (LocalityKind));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ LocalityKindTypeInfoInitializer LocalityKindTypeInfoInitializer_;
+
+ struct LocalityTypeInfoInitializer
+ {
+ LocalityTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Locality));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ LocalityTypeInfoInitializer LocalityTypeInfoInitializer_;
+
+ struct ComponentAssemblyDescriptionTypeInfoInitializer
+ {
+ ComponentAssemblyDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentAssemblyDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentAssemblyDescriptionTypeInfoInitializer ComponentAssemblyDescriptionTypeInfoInitializer_;
+
+ struct MonolithicImplementationDescriptionTypeInfoInitializer
+ {
+ MonolithicImplementationDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::MonolithicImplementationDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ MonolithicImplementationDescriptionTypeInfoInitializer MonolithicImplementationDescriptionTypeInfoInitializer_;
+
+ struct ComponentImplementationDescriptionTypeInfoInitializer
+ {
+ ComponentImplementationDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentImplementationDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentImplementationDescriptionTypeInfoInitializer ComponentImplementationDescriptionTypeInfoInitializer_;
+
+ struct ConnectorImplementationDescriptionTypeInfoInitializer
+ {
+ ConnectorImplementationDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ConnectorImplementationDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ConnectorImplementationDescriptionTypeInfoInitializer ConnectorImplementationDescriptionTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // ComponentPackageReference
+ //
+ //
+
+ void ComponentPackageReference::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.requiredUUID_p ()) requiredUUID (o);
+ else requiredUUID_none (o);
+ if (o.requiredName_p ()) requiredName (o);
+ else requiredName_none (o);
+ requiredType (o);
+ post (o);
+ }
+
+ void ComponentPackageReference::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.requiredUUID_p ()) requiredUUID (o);
+ else requiredUUID_none (o);
+ if (o.requiredName_p ()) requiredName (o);
+ else requiredName_none (o);
+ requiredType (o);
+ post (o);
+ }
+
+ void ComponentPackageReference::
+ pre (Type&)
+ {
+ }
+
+ void ComponentPackageReference::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentPackageReference::
+ requiredUUID (Type& o)
+ {
+ dispatch (o.requiredUUID ());
+ }
+
+ void ComponentPackageReference::
+ requiredUUID (Type const& o)
+ {
+ dispatch (o.requiredUUID ());
+ }
+
+ void ComponentPackageReference::
+ requiredUUID_none (Type&)
+ {
+ }
+
+ void ComponentPackageReference::
+ requiredUUID_none (Type const&)
+ {
+ }
+
+ void ComponentPackageReference::
+ requiredName (Type& o)
+ {
+ dispatch (o.requiredName ());
+ }
+
+ void ComponentPackageReference::
+ requiredName (Type const& o)
+ {
+ dispatch (o.requiredName ());
+ }
+
+ void ComponentPackageReference::
+ requiredName_none (Type&)
+ {
+ }
+
+ void ComponentPackageReference::
+ requiredName_none (Type const&)
+ {
+ }
+
+ void ComponentPackageReference::
+ requiredType (Type& o)
+ {
+ dispatch (o.requiredType ());
+ }
+
+ void ComponentPackageReference::
+ requiredType (Type const& o)
+ {
+ dispatch (o.requiredType ());
+ }
+
+ void ComponentPackageReference::
+ post (Type&)
+ {
+ }
+
+ void ComponentPackageReference::
+ post (Type const&)
+ {
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ //
+
+ void SubcomponentInstantiationDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ if (o.basePackage_p ()) basePackage (o);
+ else basePackage_none (o);
+ if (o.specializedConfig_p ()) specializedConfig (o);
+ else specializedConfig_none (o);
+ selectRequirement (o);
+ configProperty (o);
+ if (o.referencedPackage_p ()) referencedPackage (o);
+ else referencedPackage_none (o);
+ if (o.importedPackage_p ()) importedPackage (o);
+ else importedPackage_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ if (o.basePackage_p ()) basePackage (o);
+ else basePackage_none (o);
+ if (o.specializedConfig_p ()) specializedConfig (o);
+ else specializedConfig_none (o);
+ selectRequirement (o);
+ configProperty (o);
+ if (o.referencedPackage_p ()) referencedPackage (o);
+ else referencedPackage_none (o);
+ if (o.importedPackage_p ()) importedPackage (o);
+ else importedPackage_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
+ post (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ pre (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ pre (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ basePackage (Type& o)
+ {
+ dispatch (o.basePackage ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ basePackage (Type const& o)
+ {
+ dispatch (o.basePackage ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ basePackage_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ basePackage_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ specializedConfig (Type& o)
+ {
+ dispatch (o.specializedConfig ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ specializedConfig (Type const& o)
+ {
+ dispatch (o.specializedConfig ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ specializedConfig_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ specializedConfig_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::selectRequirement_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+
+ if (b != e)
+ {
+ selectRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) selectRequirement_next (o);
+ }
+
+ selectRequirement_post (o);
+ }
+
+ else selectRequirement_none (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::selectRequirement_const_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+
+ if (b != e)
+ {
+ selectRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) selectRequirement_next (o);
+ }
+
+ selectRequirement_post (o);
+ }
+
+ else selectRequirement_none (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_pre (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_pre (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_next (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_next (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_post (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_post (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ referencedPackage (Type& o)
+ {
+ dispatch (o.referencedPackage ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ referencedPackage (Type const& o)
+ {
+ dispatch (o.referencedPackage ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ referencedPackage_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ referencedPackage_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ importedPackage (Type& o)
+ {
+ dispatch (o.importedPackage ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ importedPackage (Type const& o)
+ {
+ dispatch (o.importedPackage ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ importedPackage_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ importedPackage_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ id (Type& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ id (Type const& o)
+ {
+ dispatch (o.id ());
+ }
+
+ void SubcomponentInstantiationDescription::
+ id_none (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ id_none (Type const&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ post (Type&)
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ post (Type const&)
+ {
+ }
+
+ // SubcomponentPropertyReference
+ //
+ //
+
+ void SubcomponentPropertyReference::
+ traverse (Type& o)
+ {
+ pre (o);
+ propertyName (o);
+ instance (o);
+ post (o);
+ }
+
+ void SubcomponentPropertyReference::
+ traverse (Type const& o)
+ {
+ pre (o);
+ propertyName (o);
+ instance (o);
+ post (o);
+ }
+
+ void SubcomponentPropertyReference::
+ pre (Type&)
+ {
+ }
+
+ void SubcomponentPropertyReference::
+ pre (Type const&)
+ {
+ }
+
+ void SubcomponentPropertyReference::
+ propertyName (Type& o)
+ {
+ dispatch (o.propertyName ());
+ }
+
+ void SubcomponentPropertyReference::
+ propertyName (Type const& o)
+ {
+ dispatch (o.propertyName ());
+ }
+
+ void SubcomponentPropertyReference::
+ instance (Type& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void SubcomponentPropertyReference::
+ instance (Type const& o)
+ {
+ dispatch (o.instance ());
+ }
+
+ void SubcomponentPropertyReference::
+ post (Type&)
+ {
+ }
+
+ void SubcomponentPropertyReference::
+ post (Type const&)
+ {
+ }
+
+ // AssemblyPropertyMapping
+ //
+ //
+
+ void AssemblyPropertyMapping::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ externalName (o);
+ delegatesTo (o);
+ post (o);
+ }
+
+ void AssemblyPropertyMapping::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ externalName (o);
+ delegatesTo (o);
+ post (o);
+ }
+
+ void AssemblyPropertyMapping::
+ pre (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ pre (Type const&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void AssemblyPropertyMapping::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void AssemblyPropertyMapping::
+ externalName (Type& o)
+ {
+ dispatch (o.externalName ());
+ }
+
+ void AssemblyPropertyMapping::
+ externalName (Type const& o)
+ {
+ dispatch (o.externalName ());
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyPropertyMapping::delegatesTo_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
+
+ if (b != e)
+ {
+ delegatesTo_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) delegatesTo_next (o);
+ }
+
+ delegatesTo_post (o);
+ }
+
+ else delegatesTo_none (o);
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::AssemblyPropertyMapping::delegatesTo_const_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
+
+ if (b != e)
+ {
+ delegatesTo_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) delegatesTo_next (o);
+ }
+
+ delegatesTo_post (o);
+ }
+
+ else delegatesTo_none (o);
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_pre (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_pre (Type const&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_next (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_next (Type const&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_post (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_post (Type const&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_none (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_none (Type const&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ post (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ post (Type const&)
+ {
+ }
+
+ // Locality
+ //
+ //
+
+ void Locality::
+ traverse (Type& o)
+ {
+ pre (o);
+ constraint (o);
+ constrainedInstance (o);
+ post (o);
+ }
+
+ void Locality::
+ traverse (Type const& o)
+ {
+ pre (o);
+ constraint (o);
+ constrainedInstance (o);
+ post (o);
+ }
+
+ void Locality::
+ pre (Type&)
+ {
+ }
+
+ void Locality::
+ pre (Type const&)
+ {
+ }
+
+ void Locality::
+ constraint (Type& o)
+ {
+ dispatch (o.constraint ());
+ }
+
+ void Locality::
+ constraint (Type const& o)
+ {
+ dispatch (o.constraint ());
+ }
+
+ void Locality::
+ constrainedInstance (Type& o)
+ {
+ dispatch (o.constrainedInstance ());
+ }
+
+ void Locality::
+ constrainedInstance (Type const& o)
+ {
+ dispatch (o.constrainedInstance ());
+ }
+
+ void Locality::
+ post (Type&)
+ {
+ }
+
+ void Locality::
+ post (Type const&)
+ {
+ }
+
+ // ComponentAssemblyDescription
+ //
+ //
+
+ void ComponentAssemblyDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ instance (o);
+ connection (o);
+ externalProperty (o);
+ locality (o);
+ post (o);
+ }
+
+ void ComponentAssemblyDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ instance (o);
+ connection (o);
+ externalProperty (o);
+ locality (o);
+ post (o);
+ }
+
+ void ComponentAssemblyDescription::
+ pre (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::instance_iterator b (o.begin_instance()), e (o.end_instance());
+
+ if (b != e)
+ {
+ instance_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) instance_next (o);
+ }
+
+ instance_post (o);
+ }
+
+ else instance_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ instance (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::instance_const_iterator b (o.begin_instance()), e (o.end_instance());
+
+ if (b != e)
+ {
+ instance_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) instance_next (o);
+ }
+
+ instance_post (o);
+ }
+
+ else instance_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ instance_pre (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_pre (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_next (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_next (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_post (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_post (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_none (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_none (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::connection_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ connection (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+
+ if (b != e)
+ {
+ connection_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) connection_next (o);
+ }
+
+ connection_post (o);
+ }
+
+ else connection_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ connection_pre (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_pre (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_next (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_next (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_post (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_post (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_none (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ connection_none (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::externalProperty_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
+
+ if (b != e)
+ {
+ externalProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalProperty_next (o);
+ }
+
+ externalProperty_post (o);
+ }
+
+ else externalProperty_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::externalProperty_const_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
+
+ if (b != e)
+ {
+ externalProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) externalProperty_next (o);
+ }
+
+ externalProperty_post (o);
+ }
+
+ else externalProperty_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_pre (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_next (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_next (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_post (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_post (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_none (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_none (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::locality_iterator b (o.begin_locality()), e (o.end_locality());
+
+ if (b != e)
+ {
+ locality_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) locality_next (o);
+ }
+
+ locality_post (o);
+ }
+
+ else locality_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ locality (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::locality_const_iterator b (o.begin_locality()), e (o.end_locality());
+
+ if (b != e)
+ {
+ locality_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) locality_next (o);
+ }
+
+ locality_post (o);
+ }
+
+ else locality_none (o);
+ }
+
+ void ComponentAssemblyDescription::
+ locality_pre (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_pre (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_next (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_next (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_post (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_post (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_none (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ locality_none (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ post (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ post (Type const&)
+ {
+ }
+
+ // MonolithicImplementationDescription
+ //
+ //
+
+ void MonolithicImplementationDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ nodeExecParameter (o);
+ componentExecParameter (o);
+ deployRequirement (o);
+ primaryArtifact (o);
+ post (o);
+ }
+
+ void MonolithicImplementationDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ nodeExecParameter (o);
+ componentExecParameter (o);
+ deployRequirement (o);
+ primaryArtifact (o);
+ post (o);
+ }
+
+ void MonolithicImplementationDescription::
+ pre (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ pre (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::nodeExecParameter_iterator b (o.begin_nodeExecParameter()), e (o.end_nodeExecParameter());
+
+ if (b != e)
+ {
+ nodeExecParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) nodeExecParameter_next (o);
+ }
+
+ nodeExecParameter_post (o);
+ }
+
+ else nodeExecParameter_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::nodeExecParameter_const_iterator b (o.begin_nodeExecParameter()), e (o.end_nodeExecParameter());
+
+ if (b != e)
+ {
+ nodeExecParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) nodeExecParameter_next (o);
+ }
+
+ nodeExecParameter_post (o);
+ }
+
+ else nodeExecParameter_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_pre (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_pre (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_next (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_next (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_post (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_post (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_none (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_none (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::componentExecParameter_iterator b (o.begin_componentExecParameter()), e (o.end_componentExecParameter());
+
+ if (b != e)
+ {
+ componentExecParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) componentExecParameter_next (o);
+ }
+
+ componentExecParameter_post (o);
+ }
+
+ else componentExecParameter_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::componentExecParameter_const_iterator b (o.begin_componentExecParameter()), e (o.end_componentExecParameter());
+
+ if (b != e)
+ {
+ componentExecParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) componentExecParameter_next (o);
+ }
+
+ componentExecParameter_post (o);
+ }
+
+ else componentExecParameter_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_pre (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_pre (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_next (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_next (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_post (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_post (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_none (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_none (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_pre (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_pre (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_next (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_next (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_post (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_post (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_none (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_none (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::primaryArtifact_iterator b (o.begin_primaryArtifact()), e (o.end_primaryArtifact());
+
+ if (b != e)
+ {
+ primaryArtifact_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) primaryArtifact_next (o);
+ }
+
+ primaryArtifact_post (o);
+ }
+
+ else primaryArtifact_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::primaryArtifact_const_iterator b (o.begin_primaryArtifact()), e (o.end_primaryArtifact());
+
+ if (b != e)
+ {
+ primaryArtifact_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) primaryArtifact_next (o);
+ }
+
+ primaryArtifact_post (o);
+ }
+
+ else primaryArtifact_none (o);
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_pre (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_pre (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_next (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_next (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_post (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_post (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_none (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_none (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ post (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ post (Type const&)
+ {
+ }
+
+ // ComponentImplementationDescription
+ //
+ //
+
+ void ComponentImplementationDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.implements_p ()) implements (o);
+ else implements_none (o);
+ if (o.assemblyImpl_p ()) assemblyImpl (o);
+ else assemblyImpl_none (o);
+ if (o.monolithicImpl_p ()) monolithicImpl (o);
+ else monolithicImpl_none (o);
+ configProperty (o);
+ capability (o);
+ dependsOn (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ComponentImplementationDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.implements_p ()) implements (o);
+ else implements_none (o);
+ if (o.assemblyImpl_p ()) assemblyImpl (o);
+ else assemblyImpl_none (o);
+ if (o.monolithicImpl_p ()) monolithicImpl (o);
+ else monolithicImpl_none (o);
+ configProperty (o);
+ capability (o);
+ dependsOn (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ComponentImplementationDescription::
+ pre (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ComponentImplementationDescription::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ComponentImplementationDescription::
+ label_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ label_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ComponentImplementationDescription::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ComponentImplementationDescription::
+ UUID_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ UUID_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ implements (Type& o)
+ {
+ dispatch (o.implements ());
+ }
+
+ void ComponentImplementationDescription::
+ implements (Type const& o)
+ {
+ dispatch (o.implements ());
+ }
+
+ void ComponentImplementationDescription::
+ implements_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ implements_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ assemblyImpl (Type& o)
+ {
+ dispatch (o.assemblyImpl ());
+ }
+
+ void ComponentImplementationDescription::
+ assemblyImpl (Type const& o)
+ {
+ dispatch (o.assemblyImpl ());
+ }
+
+ void ComponentImplementationDescription::
+ assemblyImpl_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ assemblyImpl_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ monolithicImpl (Type& o)
+ {
+ dispatch (o.monolithicImpl ());
+ }
+
+ void ComponentImplementationDescription::
+ monolithicImpl (Type const& o)
+ {
+ dispatch (o.monolithicImpl ());
+ }
+
+ void ComponentImplementationDescription::
+ monolithicImpl_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ monolithicImpl_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::capability_iterator b (o.begin_capability()), e (o.end_capability());
+
+ if (b != e)
+ {
+ capability_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) capability_next (o);
+ }
+
+ capability_post (o);
+ }
+
+ else capability_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ capability (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::capability_const_iterator b (o.begin_capability()), e (o.end_capability());
+
+ if (b != e)
+ {
+ capability_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) capability_next (o);
+ }
+
+ capability_post (o);
+ }
+
+ else capability_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ capability_pre (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_pre (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_next (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_next (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_post (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_post (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ capability_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_pre (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_pre (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_next (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_next (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_post (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_post (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ComponentImplementationDescription::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ComponentImplementationDescription::
+ href_none (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ href_none (Type const&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ post (Type&)
+ {
+ }
+
+ void ComponentImplementationDescription::
+ post (Type const&)
+ {
+ }
+
+ // ConnectorImplementationDescription
+ //
+ //
+
+ void ConnectorImplementationDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.implements_p ()) implements (o);
+ else implements_none (o);
+ if (o.assemblyImpl_p ()) assemblyImpl (o);
+ else assemblyImpl_none (o);
+ if (o.monolithicImpl_p ()) monolithicImpl (o);
+ else monolithicImpl_none (o);
+ configProperty (o);
+ capability (o);
+ dependsOn (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ConnectorImplementationDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.implements_p ()) implements (o);
+ else implements_none (o);
+ if (o.assemblyImpl_p ()) assemblyImpl (o);
+ else assemblyImpl_none (o);
+ if (o.monolithicImpl_p ()) monolithicImpl (o);
+ else monolithicImpl_none (o);
+ configProperty (o);
+ capability (o);
+ dependsOn (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ConnectorImplementationDescription::
+ pre (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ConnectorImplementationDescription::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ConnectorImplementationDescription::
+ label_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ label_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ConnectorImplementationDescription::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ConnectorImplementationDescription::
+ UUID_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ UUID_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ implements (Type& o)
+ {
+ dispatch (o.implements ());
+ }
+
+ void ConnectorImplementationDescription::
+ implements (Type const& o)
+ {
+ dispatch (o.implements ());
+ }
+
+ void ConnectorImplementationDescription::
+ implements_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ implements_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ assemblyImpl (Type& o)
+ {
+ dispatch (o.assemblyImpl ());
+ }
+
+ void ConnectorImplementationDescription::
+ assemblyImpl (Type const& o)
+ {
+ dispatch (o.assemblyImpl ());
+ }
+
+ void ConnectorImplementationDescription::
+ assemblyImpl_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ assemblyImpl_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ monolithicImpl (Type& o)
+ {
+ dispatch (o.monolithicImpl ());
+ }
+
+ void ConnectorImplementationDescription::
+ monolithicImpl (Type const& o)
+ {
+ dispatch (o.monolithicImpl ());
+ }
+
+ void ConnectorImplementationDescription::
+ monolithicImpl_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ monolithicImpl_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::capability_iterator b (o.begin_capability()), e (o.end_capability());
+
+ if (b != e)
+ {
+ capability_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) capability_next (o);
+ }
+
+ capability_post (o);
+ }
+
+ else capability_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ capability (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::capability_const_iterator b (o.begin_capability()), e (o.end_capability());
+
+ if (b != e)
+ {
+ capability_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) capability_next (o);
+ }
+
+ capability_post (o);
+ }
+
+ else capability_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ capability_pre (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_pre (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_next (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_next (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_post (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_post (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ capability_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_pre (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_pre (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_next (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_next (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_post (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_post (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorImplementationDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ConnectorImplementationDescription::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ConnectorImplementationDescription::
+ href_none (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ href_none (Type const&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ post (Type&)
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // ComponentPackageReference
+ //
+ //
+
+ ComponentPackageReference::
+ ComponentPackageReference (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentPackageReference::
+ ComponentPackageReference ()
+ {
+ }
+
+ void ComponentPackageReference::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentPackageReference::traverse (o);
+ }
+
+ void ComponentPackageReference::
+ requiredUUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requiredUUID"), top_ ()));
+ Traversal::ComponentPackageReference::requiredUUID (o);
+ pop_ ();
+ }
+
+ void ComponentPackageReference::
+ requiredName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requiredName"), top_ ()));
+ Traversal::ComponentPackageReference::requiredName (o);
+ pop_ ();
+ }
+
+ void ComponentPackageReference::
+ requiredType (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("requiredType"), top_ ()));
+ Traversal::ComponentPackageReference::requiredType (o);
+ pop_ ();
+ }
+
+ // SubcomponentInstantiationDescription
+ //
+ //
+
+ SubcomponentInstantiationDescription::
+ SubcomponentInstantiationDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SubcomponentInstantiationDescription::
+ SubcomponentInstantiationDescription ()
+ {
+ }
+
+ void SubcomponentInstantiationDescription::
+ traverse (Type const& o)
+ {
+ Traversal::SubcomponentInstantiationDescription::traverse (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::SubcomponentInstantiationDescription::name (o);
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ basePackage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("basePackage"), top_ ()));
+ Traversal::SubcomponentInstantiationDescription::basePackage (o);
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ specializedConfig (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("specializedConfig"), top_ ()));
+ Traversal::SubcomponentInstantiationDescription::specializedConfig (o);
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("selectRequirement"), top_ ()));
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_next (Type const& o)
+ {
+ selectRequirement_post (o);
+ selectRequirement_pre (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ selectRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void SubcomponentInstantiationDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ referencedPackage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("referencedPackage"), top_ ()));
+ Traversal::SubcomponentInstantiationDescription::referencedPackage (o);
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ importedPackage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("importedPackage"), top_ ()));
+ Traversal::SubcomponentInstantiationDescription::importedPackage (o);
+ pop_ ();
+ }
+
+ void SubcomponentInstantiationDescription::
+ id (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("id"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::SubcomponentInstantiationDescription::id (o);
+ attr_ (0);
+ }
+
+ // SubcomponentPropertyReference
+ //
+ //
+
+ SubcomponentPropertyReference::
+ SubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ SubcomponentPropertyReference::
+ SubcomponentPropertyReference ()
+ {
+ }
+
+ void SubcomponentPropertyReference::
+ traverse (Type const& o)
+ {
+ Traversal::SubcomponentPropertyReference::traverse (o);
+ }
+
+ void SubcomponentPropertyReference::
+ propertyName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("propertyName"), top_ ()));
+ Traversal::SubcomponentPropertyReference::propertyName (o);
+ pop_ ();
+ }
+
+ void SubcomponentPropertyReference::
+ instance (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("instance"), top_ ()));
+ Traversal::SubcomponentPropertyReference::instance (o);
+ pop_ ();
+ }
+
+ // AssemblyPropertyMapping
+ //
+ //
+
+ AssemblyPropertyMapping::
+ AssemblyPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ AssemblyPropertyMapping::
+ AssemblyPropertyMapping ()
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ traverse (Type const& o)
+ {
+ Traversal::AssemblyPropertyMapping::traverse (o);
+ }
+
+ void AssemblyPropertyMapping::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::AssemblyPropertyMapping::name (o);
+ pop_ ();
+ }
+
+ void AssemblyPropertyMapping::
+ externalName (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalName"), top_ ()));
+ Traversal::AssemblyPropertyMapping::externalName (o);
+ pop_ ();
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("delegatesTo"), top_ ()));
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_next (Type const& o)
+ {
+ delegatesTo_post (o);
+ delegatesTo_pre (o);
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // LocalityKind
+ //
+ //
+
+ LocalityKind::
+ LocalityKind (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ LocalityKind::
+ LocalityKind ()
+ {
+ }
+
+ void LocalityKind::
+ traverse (Type const& o)
+ {
+ ::std::basic_string< ACE_TCHAR > s;
+
+ if (o == ::CIAO::Config_Handlers::LocalityKind::SameNodeAnyProcess) s = ACE_TEXT ("SameNodeAnyProcess");
+ else if (o == ::CIAO::Config_Handlers::LocalityKind::SameNodeSameProcess) s = ACE_TEXT ("SameNodeSameProcess");
+ else if (o == ::CIAO::Config_Handlers::LocalityKind::SameNodeDifferentProcess) s = ACE_TEXT ("SameNodeDifferentProcess");
+ else if (o == ::CIAO::Config_Handlers::LocalityKind::DifferentNode) s = ACE_TEXT ("DifferentNode");
+ else if (o == ::CIAO::Config_Handlers::LocalityKind::DifferentProcess) s = ACE_TEXT ("DifferentProcess");
+ else if (o == ::CIAO::Config_Handlers::LocalityKind::NoConstraint) s = ACE_TEXT ("NoConstraint");
+ else
+ {
+ }
+
+ if (::XSCRT::XML::Attribute< ACE_TCHAR >* a = attr_ ())
+ {
+ a->value (s);
+ }
+
+ else
+ {
+ top_().value (s);
+ }
+ }
+
+ // Locality
+ //
+ //
+
+ Locality::
+ Locality (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ Locality::
+ Locality ()
+ {
+ }
+
+ void Locality::
+ traverse (Type const& o)
+ {
+ Traversal::Locality::traverse (o);
+ }
+
+ void Locality::
+ constraint (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("constraint"), top_ ()));
+ Traversal::Locality::constraint (o);
+ pop_ ();
+ }
+
+ void Locality::
+ constrainedInstance (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("constrainedInstance"), top_ ()));
+ Traversal::Locality::constrainedInstance (o);
+ pop_ ();
+ }
+
+ // ComponentAssemblyDescription
+ //
+ //
+
+ ComponentAssemblyDescription::
+ ComponentAssemblyDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentAssemblyDescription::
+ ComponentAssemblyDescription ()
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentAssemblyDescription::traverse (o);
+ }
+
+ void ComponentAssemblyDescription::
+ instance_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("instance"), top_ ()));
+ }
+
+ void ComponentAssemblyDescription::
+ instance_next (Type const& o)
+ {
+ instance_post (o);
+ instance_pre (o);
+ }
+
+ void ComponentAssemblyDescription::
+ instance_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentAssemblyDescription::
+ connection_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("connection"), top_ ()));
+ }
+
+ void ComponentAssemblyDescription::
+ connection_next (Type const& o)
+ {
+ connection_post (o);
+ connection_pre (o);
+ }
+
+ void ComponentAssemblyDescription::
+ connection_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("externalProperty"), top_ ()));
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_next (Type const& o)
+ {
+ externalProperty_post (o);
+ externalProperty_pre (o);
+ }
+
+ void ComponentAssemblyDescription::
+ externalProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentAssemblyDescription::
+ locality_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("locality"), top_ ()));
+ }
+
+ void ComponentAssemblyDescription::
+ locality_next (Type const& o)
+ {
+ locality_post (o);
+ locality_pre (o);
+ }
+
+ void ComponentAssemblyDescription::
+ locality_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // MonolithicImplementationDescription
+ //
+ //
+
+ MonolithicImplementationDescription::
+ MonolithicImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ MonolithicImplementationDescription::
+ MonolithicImplementationDescription ()
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ traverse (Type const& o)
+ {
+ Traversal::MonolithicImplementationDescription::traverse (o);
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("nodeExecParameter"), top_ ()));
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_next (Type const& o)
+ {
+ nodeExecParameter_post (o);
+ nodeExecParameter_pre (o);
+ }
+
+ void MonolithicImplementationDescription::
+ nodeExecParameter_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("componentExecParameter"), top_ ()));
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_next (Type const& o)
+ {
+ componentExecParameter_post (o);
+ componentExecParameter_pre (o);
+ }
+
+ void MonolithicImplementationDescription::
+ componentExecParameter_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployRequirement"), top_ ()));
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_next (Type const& o)
+ {
+ deployRequirement_post (o);
+ deployRequirement_pre (o);
+ }
+
+ void MonolithicImplementationDescription::
+ deployRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("primaryArtifact"), top_ ()));
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_next (Type const& o)
+ {
+ primaryArtifact_post (o);
+ primaryArtifact_pre (o);
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // ComponentImplementationDescription
+ //
+ //
+
+ ComponentImplementationDescription::
+ ComponentImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentImplementationDescription::
+ ComponentImplementationDescription ()
+ {
+ }
+
+ void ComponentImplementationDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentImplementationDescription::traverse (o);
+ }
+
+ void ComponentImplementationDescription::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::ComponentImplementationDescription::label (o);
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::ComponentImplementationDescription::UUID (o);
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ implements (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("implements"), top_ ()));
+ Traversal::ComponentImplementationDescription::implements (o);
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ assemblyImpl (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("assemblyImpl"), top_ ()));
+ Traversal::ComponentImplementationDescription::assemblyImpl (o);
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ monolithicImpl (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("monolithicImpl"), top_ ()));
+ Traversal::ComponentImplementationDescription::monolithicImpl (o);
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void ComponentImplementationDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ capability_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("capability"), top_ ()));
+ }
+
+ void ComponentImplementationDescription::
+ capability_next (Type const& o)
+ {
+ capability_post (o);
+ capability_pre (o);
+ }
+
+ void ComponentImplementationDescription::
+ capability_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("dependsOn"), top_ ()));
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_next (Type const& o)
+ {
+ dependsOn_post (o);
+ dependsOn_pre (o);
+ }
+
+ void ComponentImplementationDescription::
+ dependsOn_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void ComponentImplementationDescription::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentImplementationDescription::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ComponentImplementationDescription::href (o);
+ attr_ (0);
+ }
+
+ // ConnectorImplementationDescription
+ //
+ //
+
+ ConnectorImplementationDescription::
+ ConnectorImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ConnectorImplementationDescription::
+ ConnectorImplementationDescription ()
+ {
+ }
+
+ void ConnectorImplementationDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ConnectorImplementationDescription::traverse (o);
+ }
+
+ void ConnectorImplementationDescription::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::ConnectorImplementationDescription::label (o);
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::ConnectorImplementationDescription::UUID (o);
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ implements (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("implements"), top_ ()));
+ Traversal::ConnectorImplementationDescription::implements (o);
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ assemblyImpl (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("assemblyImpl"), top_ ()));
+ Traversal::ConnectorImplementationDescription::assemblyImpl (o);
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ monolithicImpl (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("monolithicImpl"), top_ ()));
+ Traversal::ConnectorImplementationDescription::monolithicImpl (o);
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void ConnectorImplementationDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ capability_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("capability"), top_ ()));
+ }
+
+ void ConnectorImplementationDescription::
+ capability_next (Type const& o)
+ {
+ capability_post (o);
+ capability_pre (o);
+ }
+
+ void ConnectorImplementationDescription::
+ capability_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("dependsOn"), top_ ()));
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_next (Type const& o)
+ {
+ dependsOn_post (o);
+ dependsOn_pre (o);
+ }
+
+ void ConnectorImplementationDescription::
+ dependsOn_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void ConnectorImplementationDescription::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorImplementationDescription::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ConnectorImplementationDescription::href (o);
+ attr_ (0);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cid.hpp b/modules/CIAO/DAnCE/Config_Handlers/cid.hpp
new file mode 100644
index 00000000000..dbf48c94913
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cid.hpp
@@ -0,0 +1,2885 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef CID_HPP
+#define CID_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentPackageReference;
+ class SubcomponentInstantiationDescription;
+ class SubcomponentPropertyReference;
+ class AssemblyPropertyMapping;
+ class LocalityKind;
+ class Locality;
+ class ComponentAssemblyDescription;
+ class MonolithicImplementationDescription;
+ class ComponentImplementationDescription;
+ class ConnectorImplementationDescription;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "Basic_Deployment_Data.hpp"
+
+#include "ccd.hpp"
+
+#include "iad.hpp"
+
+#include "pcd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export ComponentPackageReference : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPackageReference, ACE_Null_Mutex > _ptr;
+
+ // requiredUUID
+ //
+ public:
+ bool requiredUUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& requiredUUID () const;
+ void requiredUUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requiredUUID_;
+
+ // requiredName
+ //
+ public:
+ bool requiredName_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& requiredName () const;
+ void requiredName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requiredName_;
+
+ // requiredType
+ //
+ public:
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& requiredType () const;
+ void requiredType (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > requiredType_;
+
+ public:
+ ComponentPackageReference (::CIAO::Config_Handlers::ComponentInterfaceDescription const& requiredType__);
+
+ ComponentPackageReference (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentPackageReference (ComponentPackageReference const& s);
+
+ ComponentPackageReference&
+ operator= (ComponentPackageReference const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export SubcomponentInstantiationDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SubcomponentInstantiationDescription, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // basePackage
+ //
+ public:
+ bool basePackage_p () const;
+ ::CIAO::Config_Handlers::ComponentPackageDescription const& basePackage () const;
+ void basePackage (::CIAO::Config_Handlers::ComponentPackageDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > basePackage_;
+
+ // specializedConfig
+ //
+ public:
+ bool specializedConfig_p () const;
+ ::CIAO::Config_Handlers::PackageConfiguration const& specializedConfig () const;
+ void specializedConfig (::CIAO::Config_Handlers::PackageConfiguration const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > specializedConfig_;
+
+ // selectRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator selectRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator selectRequirement_const_iterator;
+ selectRequirement_iterator begin_selectRequirement ();
+ selectRequirement_iterator end_selectRequirement ();
+ selectRequirement_const_iterator begin_selectRequirement () const;
+ selectRequirement_const_iterator end_selectRequirement () const;
+ void add_selectRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* selectRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_selectRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > selectRequirement_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // referencedPackage
+ //
+ public:
+ bool referencedPackage_p () const;
+ ::CIAO::Config_Handlers::ComponentPackageReference const& referencedPackage () const;
+ void referencedPackage (::CIAO::Config_Handlers::ComponentPackageReference const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > referencedPackage_;
+
+ // importedPackage
+ //
+ public:
+ bool importedPackage_p () const;
+ ::CIAO::Config_Handlers::ComponentPackageImport const& importedPackage () const;
+ void importedPackage (::CIAO::Config_Handlers::ComponentPackageImport const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > importedPackage_;
+
+ // id
+ //
+ public:
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
+
+ public:
+ SubcomponentInstantiationDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
+
+ SubcomponentInstantiationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SubcomponentInstantiationDescription (SubcomponentInstantiationDescription const& s);
+
+ SubcomponentInstantiationDescription&
+ operator= (SubcomponentInstantiationDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export SubcomponentPropertyReference : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SubcomponentPropertyReference, ACE_Null_Mutex > _ptr;
+
+ // propertyName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& propertyName () const;
+ void propertyName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > propertyName_;
+
+ // instance
+ //
+ public:
+ ::CIAO::Config_Handlers::IdRef const& instance () const;
+ void instance (::CIAO::Config_Handlers::IdRef const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > instance_;
+
+ public:
+ SubcomponentPropertyReference (::XMLSchema::string< ACE_TCHAR > const& propertyName__,
+ ::CIAO::Config_Handlers::IdRef const& instance__);
+
+ SubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ SubcomponentPropertyReference (SubcomponentPropertyReference const& s);
+
+ SubcomponentPropertyReference&
+ operator= (SubcomponentPropertyReference const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export AssemblyPropertyMapping : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < AssemblyPropertyMapping, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // externalName
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& externalName () const;
+ void externalName (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > externalName_;
+
+ // delegatesTo
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > >::iterator delegatesTo_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > >::const_iterator delegatesTo_const_iterator;
+ delegatesTo_iterator begin_delegatesTo ();
+ delegatesTo_iterator end_delegatesTo ();
+ delegatesTo_const_iterator begin_delegatesTo () const;
+ delegatesTo_const_iterator end_delegatesTo () const;
+ void add_delegatesTo ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > const& );
+ XSCRT::Type* delegatesTo_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_delegatesTo (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > > delegatesTo_;
+
+ public:
+ AssemblyPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::XMLSchema::string< ACE_TCHAR > const& externalName__);
+
+ AssemblyPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ AssemblyPropertyMapping (AssemblyPropertyMapping const& s);
+
+ AssemblyPropertyMapping&
+ operator= (AssemblyPropertyMapping const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export LocalityKind : public ::XSCRT::Type
+ {
+ public:
+ LocalityKind (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ LocalityKind (::XSCRT::XML::Attribute< ACE_TCHAR > const&);
+
+ static LocalityKind const SameNodeAnyProcess;
+ static LocalityKind const SameNodeSameProcess;
+ static LocalityKind const SameNodeDifferentProcess;
+ static LocalityKind const DifferentNode;
+ static LocalityKind const DifferentProcess;
+ static LocalityKind const NoConstraint;
+
+ enum Value
+ {
+ SameNodeAnyProcess_l, SameNodeSameProcess_l, SameNodeDifferentProcess_l, DifferentNode_l, DifferentProcess_l, NoConstraint_l
+ };
+
+
+ Value
+ integral () const;
+
+ friend bool XSC_XML_Handlers_Export
+ operator== (LocalityKind const& a, LocalityKind const& b);
+
+ friend bool XSC_XML_Handlers_Export
+ operator!= (LocalityKind const& a, LocalityKind const& b);
+
+ private:
+ LocalityKind (Value v);
+
+ Value v_;
+ };
+
+ bool XSC_XML_Handlers_Export operator== (LocalityKind const &a, LocalityKind const &b);
+
+ bool XSC_XML_Handlers_Export operator!= (LocalityKind const &a, LocalityKind const &b);
+
+
+ class XSC_XML_Handlers_Export Locality : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Locality, ACE_Null_Mutex > _ptr;
+
+ // constraint
+ //
+ public:
+ ::CIAO::Config_Handlers::LocalityKind const& constraint () const;
+ void constraint (::CIAO::Config_Handlers::LocalityKind const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::LocalityKind > constraint_;
+
+ // constrainedInstance
+ //
+ public:
+ ::CIAO::Config_Handlers::IdRef const& constrainedInstance () const;
+ void constrainedInstance (::CIAO::Config_Handlers::IdRef const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > constrainedInstance_;
+
+ public:
+ Locality (::CIAO::Config_Handlers::LocalityKind const& constraint__,
+ ::CIAO::Config_Handlers::IdRef const& constrainedInstance__);
+
+ Locality (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ Locality (Locality const& s);
+
+ Locality&
+ operator= (Locality const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ComponentAssemblyDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentAssemblyDescription, ACE_Null_Mutex > _ptr;
+
+ // instance
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > >::iterator instance_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > >::const_iterator instance_const_iterator;
+ instance_iterator begin_instance ();
+ instance_iterator end_instance ();
+ instance_const_iterator begin_instance () const;
+ instance_const_iterator end_instance () const;
+ void add_instance ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* instance_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_instance (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > > instance_;
+
+ // connection
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
+ connection_iterator begin_connection ();
+ connection_iterator end_connection ();
+ connection_const_iterator begin_connection () const;
+ connection_const_iterator end_connection () const;
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* connection_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_connection (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > > connection_;
+
+ // externalProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > >::iterator externalProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > >::const_iterator externalProperty_const_iterator;
+ externalProperty_iterator begin_externalProperty ();
+ externalProperty_iterator end_externalProperty ();
+ externalProperty_const_iterator begin_externalProperty () const;
+ externalProperty_const_iterator end_externalProperty () const;
+ void add_externalProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > const& );
+ XSCRT::Type* externalProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_externalProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > > externalProperty_;
+
+ // locality
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Locality, ACE_Null_Mutex > >::iterator locality_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Locality, ACE_Null_Mutex > >::const_iterator locality_const_iterator;
+ locality_iterator begin_locality ();
+ locality_iterator end_locality ();
+ locality_const_iterator begin_locality () const;
+ locality_const_iterator end_locality () const;
+ void add_locality ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Locality, ACE_Null_Mutex > const& );
+ XSCRT::Type* locality_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_locality (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Locality, ACE_Null_Mutex > > locality_;
+
+ public:
+ ComponentAssemblyDescription ();
+
+ ComponentAssemblyDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentAssemblyDescription (ComponentAssemblyDescription const& s);
+
+ ComponentAssemblyDescription&
+ operator= (ComponentAssemblyDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export MonolithicImplementationDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < MonolithicImplementationDescription, ACE_Null_Mutex > _ptr;
+
+ // nodeExecParameter
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator nodeExecParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator nodeExecParameter_const_iterator;
+ nodeExecParameter_iterator begin_nodeExecParameter ();
+ nodeExecParameter_iterator end_nodeExecParameter ();
+ nodeExecParameter_const_iterator begin_nodeExecParameter () const;
+ nodeExecParameter_const_iterator end_nodeExecParameter () const;
+ void add_nodeExecParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* nodeExecParameter_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_nodeExecParameter (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > nodeExecParameter_;
+
+ // componentExecParameter
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator componentExecParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator componentExecParameter_const_iterator;
+ componentExecParameter_iterator begin_componentExecParameter ();
+ componentExecParameter_iterator end_componentExecParameter ();
+ componentExecParameter_const_iterator begin_componentExecParameter () const;
+ componentExecParameter_const_iterator end_componentExecParameter () const;
+ void add_componentExecParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* componentExecParameter_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_componentExecParameter (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > componentExecParameter_;
+
+ // deployRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
+ deployRequirement_iterator begin_deployRequirement ();
+ deployRequirement_iterator end_deployRequirement ();
+ deployRequirement_const_iterator begin_deployRequirement () const;
+ deployRequirement_const_iterator end_deployRequirement () const;
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > > deployRequirement_;
+
+ // primaryArtifact
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::iterator primaryArtifact_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::const_iterator primaryArtifact_const_iterator;
+ primaryArtifact_iterator begin_primaryArtifact ();
+ primaryArtifact_iterator end_primaryArtifact ();
+ primaryArtifact_const_iterator begin_primaryArtifact () const;
+ primaryArtifact_const_iterator end_primaryArtifact () const;
+ void add_primaryArtifact ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& );
+ XSCRT::Type* primaryArtifact_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_primaryArtifact (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > > primaryArtifact_;
+
+ public:
+ MonolithicImplementationDescription ();
+
+ MonolithicImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ MonolithicImplementationDescription (MonolithicImplementationDescription const& s);
+
+ MonolithicImplementationDescription&
+ operator= (MonolithicImplementationDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ComponentImplementationDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentImplementationDescription, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // implements
+ //
+ public:
+ bool implements_p () const;
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& implements () const;
+ void implements (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > implements_;
+
+ // assemblyImpl
+ //
+ public:
+ bool assemblyImpl_p () const;
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription const& assemblyImpl () const;
+ void assemblyImpl (::CIAO::Config_Handlers::ComponentAssemblyDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentAssemblyDescription > assemblyImpl_;
+
+ // monolithicImpl
+ //
+ public:
+ bool monolithicImpl_p () const;
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription const& monolithicImpl () const;
+ void monolithicImpl (::CIAO::Config_Handlers::MonolithicImplementationDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::MonolithicImplementationDescription > monolithicImpl_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // capability
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > >::iterator capability_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > >::const_iterator capability_const_iterator;
+ capability_iterator begin_capability ();
+ capability_iterator end_capability ();
+ capability_const_iterator begin_capability () const;
+ capability_const_iterator end_capability () const;
+ void add_capability ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > const& );
+ XSCRT::Type* capability_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_capability (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > > capability_;
+
+ // dependsOn
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
+ dependsOn_iterator begin_dependsOn ();
+ dependsOn_iterator end_dependsOn ();
+ dependsOn_const_iterator begin_dependsOn () const;
+ dependsOn_const_iterator end_dependsOn () const;
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& );
+ XSCRT::Type* dependsOn_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_dependsOn (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > > dependsOn_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ public:
+ ComponentImplementationDescription ();
+
+ ComponentImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentImplementationDescription (ComponentImplementationDescription const& s);
+
+ ComponentImplementationDescription&
+ operator= (ComponentImplementationDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ConnectorImplementationDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ConnectorImplementationDescription, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // implements
+ //
+ public:
+ bool implements_p () const;
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& implements () const;
+ void implements (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > implements_;
+
+ // assemblyImpl
+ //
+ public:
+ bool assemblyImpl_p () const;
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription const& assemblyImpl () const;
+ void assemblyImpl (::CIAO::Config_Handlers::ComponentAssemblyDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentAssemblyDescription > assemblyImpl_;
+
+ // monolithicImpl
+ //
+ public:
+ bool monolithicImpl_p () const;
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription const& monolithicImpl () const;
+ void monolithicImpl (::CIAO::Config_Handlers::MonolithicImplementationDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::MonolithicImplementationDescription > monolithicImpl_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // capability
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > >::iterator capability_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > >::const_iterator capability_const_iterator;
+ capability_iterator begin_capability ();
+ capability_iterator end_capability ();
+ capability_const_iterator begin_capability () const;
+ capability_const_iterator end_capability () const;
+ void add_capability ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > const& );
+ XSCRT::Type* capability_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_capability (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > > capability_;
+
+ // dependsOn
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
+ dependsOn_iterator begin_dependsOn ();
+ dependsOn_iterator end_dependsOn ();
+ dependsOn_const_iterator begin_dependsOn () const;
+ dependsOn_const_iterator end_dependsOn () const;
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& );
+ XSCRT::Type* dependsOn_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_dependsOn (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > > dependsOn_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ public:
+ ConnectorImplementationDescription ();
+
+ ConnectorImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ConnectorImplementationDescription (ConnectorImplementationDescription const& s);
+
+ ConnectorImplementationDescription&
+ operator= (ConnectorImplementationDescription const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export ComponentPackageReference : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentPackageReference >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ requiredUUID (Type&);
+
+ virtual void
+ requiredUUID (Type const&);
+
+ virtual void
+ requiredUUID_none (Type&);
+
+ virtual void
+ requiredUUID_none (Type const&);
+
+ virtual void
+ requiredName (Type&);
+
+ virtual void
+ requiredName (Type const&);
+
+ virtual void
+ requiredName_none (Type&);
+
+ virtual void
+ requiredName_none (Type const&);
+
+ virtual void
+ requiredType (Type&);
+
+ virtual void
+ requiredType (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export SubcomponentInstantiationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ basePackage (Type&);
+
+ virtual void
+ basePackage (Type const&);
+
+ virtual void
+ basePackage_none (Type&);
+
+ virtual void
+ basePackage_none (Type const&);
+
+ virtual void
+ specializedConfig (Type&);
+
+ virtual void
+ specializedConfig (Type const&);
+
+ virtual void
+ specializedConfig_none (Type&);
+
+ virtual void
+ specializedConfig_none (Type const&);
+
+ virtual void
+ selectRequirement (Type&);
+
+ virtual void
+ selectRequirement (Type const&);
+
+ virtual void
+ selectRequirement_pre (Type&);
+
+ virtual void
+ selectRequirement_pre (Type const&);
+
+ virtual void
+ selectRequirement_next (Type&);
+
+ virtual void
+ selectRequirement_next (Type const&);
+
+ virtual void
+ selectRequirement_post (Type&);
+
+ virtual void
+ selectRequirement_post (Type const&);
+
+ virtual void
+ selectRequirement_none (Type&);
+
+ virtual void
+ selectRequirement_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ referencedPackage (Type&);
+
+ virtual void
+ referencedPackage (Type const&);
+
+ virtual void
+ referencedPackage_none (Type&);
+
+ virtual void
+ referencedPackage_none (Type const&);
+
+ virtual void
+ importedPackage (Type&);
+
+ virtual void
+ importedPackage (Type const&);
+
+ virtual void
+ importedPackage_none (Type&);
+
+ virtual void
+ importedPackage_none (Type const&);
+
+ virtual void
+ id (Type&);
+
+ virtual void
+ id (Type const&);
+
+ virtual void
+ id_none (Type&);
+
+ virtual void
+ id_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export SubcomponentPropertyReference : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::SubcomponentPropertyReference >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ propertyName (Type&);
+
+ virtual void
+ propertyName (Type const&);
+
+ virtual void
+ instance (Type&);
+
+ virtual void
+ instance (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export AssemblyPropertyMapping : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::AssemblyPropertyMapping >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ externalName (Type&);
+
+ virtual void
+ externalName (Type const&);
+
+ virtual void
+ delegatesTo (Type&);
+
+ virtual void
+ delegatesTo (Type const&);
+
+ virtual void
+ delegatesTo_pre (Type&);
+
+ virtual void
+ delegatesTo_pre (Type const&);
+
+ virtual void
+ delegatesTo_next (Type&);
+
+ virtual void
+ delegatesTo_next (Type const&);
+
+ virtual void
+ delegatesTo_post (Type&);
+
+ virtual void
+ delegatesTo_post (Type const&);
+
+ virtual void
+ delegatesTo_none (Type&);
+
+ virtual void
+ delegatesTo_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ typedef
+ ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::LocalityKind >
+ LocalityKind;
+
+ struct XSC_XML_Handlers_Export Locality : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::Locality >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ constraint (Type&);
+
+ virtual void
+ constraint (Type const&);
+
+ virtual void
+ constrainedInstance (Type&);
+
+ virtual void
+ constrainedInstance (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ComponentAssemblyDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentAssemblyDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ instance (Type&);
+
+ virtual void
+ instance (Type const&);
+
+ virtual void
+ instance_pre (Type&);
+
+ virtual void
+ instance_pre (Type const&);
+
+ virtual void
+ instance_next (Type&);
+
+ virtual void
+ instance_next (Type const&);
+
+ virtual void
+ instance_post (Type&);
+
+ virtual void
+ instance_post (Type const&);
+
+ virtual void
+ instance_none (Type&);
+
+ virtual void
+ instance_none (Type const&);
+
+ virtual void
+ connection (Type&);
+
+ virtual void
+ connection (Type const&);
+
+ virtual void
+ connection_pre (Type&);
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type&);
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type&);
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ connection_none (Type&);
+
+ virtual void
+ connection_none (Type const&);
+
+ virtual void
+ externalProperty (Type&);
+
+ virtual void
+ externalProperty (Type const&);
+
+ virtual void
+ externalProperty_pre (Type&);
+
+ virtual void
+ externalProperty_pre (Type const&);
+
+ virtual void
+ externalProperty_next (Type&);
+
+ virtual void
+ externalProperty_next (Type const&);
+
+ virtual void
+ externalProperty_post (Type&);
+
+ virtual void
+ externalProperty_post (Type const&);
+
+ virtual void
+ externalProperty_none (Type&);
+
+ virtual void
+ externalProperty_none (Type const&);
+
+ virtual void
+ locality (Type&);
+
+ virtual void
+ locality (Type const&);
+
+ virtual void
+ locality_pre (Type&);
+
+ virtual void
+ locality_pre (Type const&);
+
+ virtual void
+ locality_next (Type&);
+
+ virtual void
+ locality_next (Type const&);
+
+ virtual void
+ locality_post (Type&);
+
+ virtual void
+ locality_post (Type const&);
+
+ virtual void
+ locality_none (Type&);
+
+ virtual void
+ locality_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export MonolithicImplementationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::MonolithicImplementationDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ nodeExecParameter (Type&);
+
+ virtual void
+ nodeExecParameter (Type const&);
+
+ virtual void
+ nodeExecParameter_pre (Type&);
+
+ virtual void
+ nodeExecParameter_pre (Type const&);
+
+ virtual void
+ nodeExecParameter_next (Type&);
+
+ virtual void
+ nodeExecParameter_next (Type const&);
+
+ virtual void
+ nodeExecParameter_post (Type&);
+
+ virtual void
+ nodeExecParameter_post (Type const&);
+
+ virtual void
+ nodeExecParameter_none (Type&);
+
+ virtual void
+ nodeExecParameter_none (Type const&);
+
+ virtual void
+ componentExecParameter (Type&);
+
+ virtual void
+ componentExecParameter (Type const&);
+
+ virtual void
+ componentExecParameter_pre (Type&);
+
+ virtual void
+ componentExecParameter_pre (Type const&);
+
+ virtual void
+ componentExecParameter_next (Type&);
+
+ virtual void
+ componentExecParameter_next (Type const&);
+
+ virtual void
+ componentExecParameter_post (Type&);
+
+ virtual void
+ componentExecParameter_post (Type const&);
+
+ virtual void
+ componentExecParameter_none (Type&);
+
+ virtual void
+ componentExecParameter_none (Type const&);
+
+ virtual void
+ deployRequirement (Type&);
+
+ virtual void
+ deployRequirement (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type&);
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type&);
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type&);
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployRequirement_none (Type&);
+
+ virtual void
+ deployRequirement_none (Type const&);
+
+ virtual void
+ primaryArtifact (Type&);
+
+ virtual void
+ primaryArtifact (Type const&);
+
+ virtual void
+ primaryArtifact_pre (Type&);
+
+ virtual void
+ primaryArtifact_pre (Type const&);
+
+ virtual void
+ primaryArtifact_next (Type&);
+
+ virtual void
+ primaryArtifact_next (Type const&);
+
+ virtual void
+ primaryArtifact_post (Type&);
+
+ virtual void
+ primaryArtifact_post (Type const&);
+
+ virtual void
+ primaryArtifact_none (Type&);
+
+ virtual void
+ primaryArtifact_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ComponentImplementationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentImplementationDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ implements (Type&);
+
+ virtual void
+ implements (Type const&);
+
+ virtual void
+ implements_none (Type&);
+
+ virtual void
+ implements_none (Type const&);
+
+ virtual void
+ assemblyImpl (Type&);
+
+ virtual void
+ assemblyImpl (Type const&);
+
+ virtual void
+ assemblyImpl_none (Type&);
+
+ virtual void
+ assemblyImpl_none (Type const&);
+
+ virtual void
+ monolithicImpl (Type&);
+
+ virtual void
+ monolithicImpl (Type const&);
+
+ virtual void
+ monolithicImpl_none (Type&);
+
+ virtual void
+ monolithicImpl_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ capability (Type&);
+
+ virtual void
+ capability (Type const&);
+
+ virtual void
+ capability_pre (Type&);
+
+ virtual void
+ capability_pre (Type const&);
+
+ virtual void
+ capability_next (Type&);
+
+ virtual void
+ capability_next (Type const&);
+
+ virtual void
+ capability_post (Type&);
+
+ virtual void
+ capability_post (Type const&);
+
+ virtual void
+ capability_none (Type&);
+
+ virtual void
+ capability_none (Type const&);
+
+ virtual void
+ dependsOn (Type&);
+
+ virtual void
+ dependsOn (Type const&);
+
+ virtual void
+ dependsOn_pre (Type&);
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type&);
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type&);
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ dependsOn_none (Type&);
+
+ virtual void
+ dependsOn_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ConnectorImplementationDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ConnectorImplementationDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ implements (Type&);
+
+ virtual void
+ implements (Type const&);
+
+ virtual void
+ implements_none (Type&);
+
+ virtual void
+ implements_none (Type const&);
+
+ virtual void
+ assemblyImpl (Type&);
+
+ virtual void
+ assemblyImpl (Type const&);
+
+ virtual void
+ assemblyImpl_none (Type&);
+
+ virtual void
+ assemblyImpl_none (Type const&);
+
+ virtual void
+ monolithicImpl (Type&);
+
+ virtual void
+ monolithicImpl (Type const&);
+
+ virtual void
+ monolithicImpl_none (Type&);
+
+ virtual void
+ monolithicImpl_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ capability (Type&);
+
+ virtual void
+ capability (Type const&);
+
+ virtual void
+ capability_pre (Type&);
+
+ virtual void
+ capability_pre (Type const&);
+
+ virtual void
+ capability_next (Type&);
+
+ virtual void
+ capability_next (Type const&);
+
+ virtual void
+ capability_post (Type&);
+
+ virtual void
+ capability_post (Type const&);
+
+ virtual void
+ capability_none (Type&);
+
+ virtual void
+ capability_none (Type const&);
+
+ virtual void
+ dependsOn (Type&);
+
+ virtual void
+ dependsOn (Type const&);
+
+ virtual void
+ dependsOn_pre (Type&);
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type&);
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type&);
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ dependsOn_none (Type&);
+
+ virtual void
+ dependsOn_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct ComponentPackageReference : Traversal::ComponentPackageReference,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentPackageReference Type;
+ ComponentPackageReference (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ requiredUUID (Type &o)
+ {
+ this->requiredUUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requiredUUID (Type const&);
+
+ virtual void
+ requiredName (Type &o)
+ {
+ this->requiredName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requiredName (Type const&);
+
+ virtual void
+ requiredType (Type &o)
+ {
+ this->requiredType (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ requiredType (Type const&);
+
+ protected:
+ ComponentPackageReference ();
+ };
+
+ struct SubcomponentInstantiationDescription : Traversal::SubcomponentInstantiationDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::SubcomponentInstantiationDescription Type;
+ SubcomponentInstantiationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ basePackage (Type &o)
+ {
+ this->basePackage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ basePackage (Type const&);
+
+ virtual void
+ specializedConfig (Type &o)
+ {
+ this->specializedConfig (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ specializedConfig (Type const&);
+
+ virtual void
+ selectRequirement_pre (Type &o)
+ {
+ this->selectRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ selectRequirement_pre (Type const&);
+
+ virtual void
+ selectRequirement_next (Type &o)
+ {
+ this->selectRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ selectRequirement_next (Type const&);
+
+ virtual void
+ selectRequirement_post (Type &o)
+ {
+ this->selectRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ selectRequirement_post (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ referencedPackage (Type &o)
+ {
+ this->referencedPackage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ referencedPackage (Type const&);
+
+ virtual void
+ importedPackage (Type &o)
+ {
+ this->importedPackage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ importedPackage (Type const&);
+
+ virtual void
+ id (Type &o)
+ {
+ this->id (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ id (Type const&);
+
+ protected:
+ SubcomponentInstantiationDescription ();
+ };
+
+ struct SubcomponentPropertyReference : Traversal::SubcomponentPropertyReference,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::SubcomponentPropertyReference Type;
+ SubcomponentPropertyReference (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ propertyName (Type &o)
+ {
+ this->propertyName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ propertyName (Type const&);
+
+ virtual void
+ instance (Type &o)
+ {
+ this->instance (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance (Type const&);
+
+ protected:
+ SubcomponentPropertyReference ();
+ };
+
+ struct AssemblyPropertyMapping : Traversal::AssemblyPropertyMapping,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::AssemblyPropertyMapping Type;
+ AssemblyPropertyMapping (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ externalName (Type &o)
+ {
+ this->externalName (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalName (Type const&);
+
+ virtual void
+ delegatesTo_pre (Type &o)
+ {
+ this->delegatesTo_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ delegatesTo_pre (Type const&);
+
+ virtual void
+ delegatesTo_next (Type &o)
+ {
+ this->delegatesTo_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ delegatesTo_next (Type const&);
+
+ virtual void
+ delegatesTo_post (Type &o)
+ {
+ this->delegatesTo_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ delegatesTo_post (Type const&);
+
+ protected:
+ AssemblyPropertyMapping ();
+ };
+
+ struct LocalityKind : Traversal::LocalityKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ LocalityKind (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ protected:
+ LocalityKind ();
+ };
+
+ struct Locality : Traversal::Locality,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::Locality Type;
+ Locality (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ constraint (Type &o)
+ {
+ this->constraint (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ constraint (Type const&);
+
+ virtual void
+ constrainedInstance (Type &o)
+ {
+ this->constrainedInstance (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ constrainedInstance (Type const&);
+
+ protected:
+ Locality ();
+ };
+
+ struct ComponentAssemblyDescription : Traversal::ComponentAssemblyDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentAssemblyDescription Type;
+ ComponentAssemblyDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ instance_pre (Type &o)
+ {
+ this->instance_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance_pre (Type const&);
+
+ virtual void
+ instance_next (Type &o)
+ {
+ this->instance_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance_next (Type const&);
+
+ virtual void
+ instance_post (Type &o)
+ {
+ this->instance_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ instance_post (Type const&);
+
+ virtual void
+ connection_pre (Type &o)
+ {
+ this->connection_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_pre (Type const&);
+
+ virtual void
+ connection_next (Type &o)
+ {
+ this->connection_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_next (Type const&);
+
+ virtual void
+ connection_post (Type &o)
+ {
+ this->connection_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ connection_post (Type const&);
+
+ virtual void
+ externalProperty_pre (Type &o)
+ {
+ this->externalProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalProperty_pre (Type const&);
+
+ virtual void
+ externalProperty_next (Type &o)
+ {
+ this->externalProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalProperty_next (Type const&);
+
+ virtual void
+ externalProperty_post (Type &o)
+ {
+ this->externalProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ externalProperty_post (Type const&);
+
+ virtual void
+ locality_pre (Type &o)
+ {
+ this->locality_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ locality_pre (Type const&);
+
+ virtual void
+ locality_next (Type &o)
+ {
+ this->locality_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ locality_next (Type const&);
+
+ virtual void
+ locality_post (Type &o)
+ {
+ this->locality_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ locality_post (Type const&);
+
+ protected:
+ ComponentAssemblyDescription ();
+ };
+
+ struct MonolithicImplementationDescription : Traversal::MonolithicImplementationDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::MonolithicImplementationDescription Type;
+ MonolithicImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ nodeExecParameter_pre (Type &o)
+ {
+ this->nodeExecParameter_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ nodeExecParameter_pre (Type const&);
+
+ virtual void
+ nodeExecParameter_next (Type &o)
+ {
+ this->nodeExecParameter_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ nodeExecParameter_next (Type const&);
+
+ virtual void
+ nodeExecParameter_post (Type &o)
+ {
+ this->nodeExecParameter_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ nodeExecParameter_post (Type const&);
+
+ virtual void
+ componentExecParameter_pre (Type &o)
+ {
+ this->componentExecParameter_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ componentExecParameter_pre (Type const&);
+
+ virtual void
+ componentExecParameter_next (Type &o)
+ {
+ this->componentExecParameter_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ componentExecParameter_next (Type const&);
+
+ virtual void
+ componentExecParameter_post (Type &o)
+ {
+ this->componentExecParameter_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ componentExecParameter_post (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type &o)
+ {
+ this->deployRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type &o)
+ {
+ this->deployRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type &o)
+ {
+ this->deployRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ primaryArtifact_pre (Type &o)
+ {
+ this->primaryArtifact_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ primaryArtifact_pre (Type const&);
+
+ virtual void
+ primaryArtifact_next (Type &o)
+ {
+ this->primaryArtifact_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ primaryArtifact_next (Type const&);
+
+ virtual void
+ primaryArtifact_post (Type &o)
+ {
+ this->primaryArtifact_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ primaryArtifact_post (Type const&);
+
+ protected:
+ MonolithicImplementationDescription ();
+ };
+
+ struct ComponentImplementationDescription : Traversal::ComponentImplementationDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentImplementationDescription Type;
+ ComponentImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ implements (Type &o)
+ {
+ this->implements (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implements (Type const&);
+
+ virtual void
+ assemblyImpl (Type &o)
+ {
+ this->assemblyImpl (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ assemblyImpl (Type const&);
+
+ virtual void
+ monolithicImpl (Type &o)
+ {
+ this->monolithicImpl (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ monolithicImpl (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ capability_pre (Type &o)
+ {
+ this->capability_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ capability_pre (Type const&);
+
+ virtual void
+ capability_next (Type &o)
+ {
+ this->capability_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ capability_next (Type const&);
+
+ virtual void
+ capability_post (Type &o)
+ {
+ this->capability_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ capability_post (Type const&);
+
+ virtual void
+ dependsOn_pre (Type &o)
+ {
+ this->dependsOn_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type &o)
+ {
+ this->dependsOn_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type &o)
+ {
+ this->dependsOn_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ protected:
+ ComponentImplementationDescription ();
+ };
+
+ struct ConnectorImplementationDescription : Traversal::ConnectorImplementationDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ConnectorImplementationDescription Type;
+ ConnectorImplementationDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ implements (Type &o)
+ {
+ this->implements (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implements (Type const&);
+
+ virtual void
+ assemblyImpl (Type &o)
+ {
+ this->assemblyImpl (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ assemblyImpl (Type const&);
+
+ virtual void
+ monolithicImpl (Type &o)
+ {
+ this->monolithicImpl (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ monolithicImpl (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ capability_pre (Type &o)
+ {
+ this->capability_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ capability_pre (Type const&);
+
+ virtual void
+ capability_next (Type &o)
+ {
+ this->capability_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ capability_next (Type const&);
+
+ virtual void
+ capability_post (Type &o)
+ {
+ this->capability_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ capability_post (Type const&);
+
+ virtual void
+ dependsOn_pre (Type &o)
+ {
+ this->dependsOn_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type &o)
+ {
+ this->dependsOn_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type &o)
+ {
+ this->dependsOn_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ protected:
+ ConnectorImplementationDescription ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // CID_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cpd.cpp b/modules/CIAO/DAnCE/Config_Handlers/cpd.cpp
new file mode 100644
index 00000000000..14774d2a6f0
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cpd.cpp
@@ -0,0 +1,2081 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "cpd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // PackagedComponentImplementation
+ //
+
+ PackagedComponentImplementation::
+ PackagedComponentImplementation (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::ComponentImplementationDescription const& referencedImplementation__)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ referencedImplementation_ (new ::CIAO::Config_Handlers::ComponentImplementationDescription (referencedImplementation__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ referencedImplementation_->container (this);
+ }
+
+ PackagedComponentImplementation::
+ PackagedComponentImplementation (PackagedComponentImplementation const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ referencedImplementation_ (new ::CIAO::Config_Handlers::ComponentImplementationDescription (*s.referencedImplementation_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ referencedImplementation_->container (this);
+ }
+
+ PackagedComponentImplementation& PackagedComponentImplementation::
+ operator= (PackagedComponentImplementation const& s)
+ {
+ name (*s.name_);
+
+ referencedImplementation (*s.referencedImplementation_);
+
+ return *this;
+ }
+
+
+ // PackagedComponentImplementation
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& PackagedComponentImplementation::
+ name () const
+ {
+ return *name_;
+ }
+
+ void PackagedComponentImplementation::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // PackagedComponentImplementation
+ //
+ ::CIAO::Config_Handlers::ComponentImplementationDescription const& PackagedComponentImplementation::
+ referencedImplementation () const
+ {
+ return *referencedImplementation_;
+ }
+
+ void PackagedComponentImplementation::
+ referencedImplementation (::CIAO::Config_Handlers::ComponentImplementationDescription const& e)
+ {
+ *referencedImplementation_ = e;
+ }
+
+
+ // ComponentPackageDescription
+ //
+
+ ComponentPackageDescription::
+ ComponentPackageDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ ComponentPackageDescription::
+ ComponentPackageDescription (ComponentPackageDescription const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ realizes_ (s.realizes_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.realizes_) : 0),
+ configProperty_ (s.configProperty_),
+ implementation_ (s.implementation_),
+ infoProperty_ (s.infoProperty_),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (realizes_.get ()) realizes_->container (this);
+ if (href_.get ()) href_->container (this);
+ }
+
+ ComponentPackageDescription& ComponentPackageDescription::
+ operator= (ComponentPackageDescription const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.realizes_.get ())
+ realizes (*(s.realizes_));
+ else
+ realizes_.reset (0);
+
+ configProperty_ = s.configProperty_;
+
+ implementation_ = s.implementation_;
+
+ infoProperty_ = s.infoProperty_;
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ComponentPackageDescription
+ //
+ bool ComponentPackageDescription::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPackageDescription::
+ label () const
+ {
+ return *label_;
+ }
+
+ void ComponentPackageDescription::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // ComponentPackageDescription
+ //
+ bool ComponentPackageDescription::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPackageDescription::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void ComponentPackageDescription::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // ComponentPackageDescription
+ //
+ bool ComponentPackageDescription::
+ realizes_p () const
+ {
+ return realizes_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& ComponentPackageDescription::
+ realizes () const
+ {
+ return *realizes_;
+ }
+
+ void ComponentPackageDescription::
+ realizes (::CIAO::Config_Handlers::ComponentInterfaceDescription const& e)
+ {
+ if (realizes_.get ())
+ {
+ *realizes_ = e;
+ }
+
+ else
+ {
+ realizes_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (e));
+ realizes_->container (this);
+ }
+ }
+
+ // ComponentPackageDescription
+ //
+ ComponentPackageDescription::configProperty_iterator ComponentPackageDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ ComponentPackageDescription::configProperty_iterator ComponentPackageDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ ComponentPackageDescription::configProperty_const_iterator ComponentPackageDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ ComponentPackageDescription::configProperty_const_iterator ComponentPackageDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void ComponentPackageDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t ComponentPackageDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // ComponentPackageDescription
+ //
+ ComponentPackageDescription::implementation_iterator ComponentPackageDescription::
+ begin_implementation ()
+ {
+ return implementation_.begin ();
+ }
+
+ ComponentPackageDescription::implementation_iterator ComponentPackageDescription::
+ end_implementation ()
+ {
+ return implementation_.end ();
+ }
+
+ ComponentPackageDescription::implementation_const_iterator ComponentPackageDescription::
+ begin_implementation () const
+ {
+ return implementation_.begin ();
+ }
+
+ ComponentPackageDescription::implementation_const_iterator ComponentPackageDescription::
+ end_implementation () const
+ {
+ return implementation_.end ();
+ }
+
+ void ComponentPackageDescription::
+ add_implementation (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > const& e)
+ {
+ implementation_.push_back (e);
+ }
+
+ size_t ComponentPackageDescription::
+ count_implementation(void) const
+ {
+ return implementation_.size ();
+ }
+
+ // ComponentPackageDescription
+ //
+ ComponentPackageDescription::infoProperty_iterator ComponentPackageDescription::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ ComponentPackageDescription::infoProperty_iterator ComponentPackageDescription::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ ComponentPackageDescription::infoProperty_const_iterator ComponentPackageDescription::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ ComponentPackageDescription::infoProperty_const_iterator ComponentPackageDescription::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void ComponentPackageDescription::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t ComponentPackageDescription::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // ComponentPackageDescription
+ //
+ bool ComponentPackageDescription::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ComponentPackageDescription::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& ComponentPackageDescription::
+ href ()
+ {
+ return *href_;
+ }
+
+ void ComponentPackageDescription::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+
+
+ // ConnectorPackageDescription
+ //
+
+ ConnectorPackageDescription::
+ ConnectorPackageDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ ConnectorPackageDescription::
+ ConnectorPackageDescription (ConnectorPackageDescription const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ realizes_ (s.realizes_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.realizes_) : 0),
+ configProperty_ (s.configProperty_),
+ implementation_ (s.implementation_),
+ infoProperty_ (s.infoProperty_),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (realizes_.get ()) realizes_->container (this);
+ if (href_.get ()) href_->container (this);
+ }
+
+ ConnectorPackageDescription& ConnectorPackageDescription::
+ operator= (ConnectorPackageDescription const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.realizes_.get ())
+ realizes (*(s.realizes_));
+ else
+ realizes_.reset (0);
+
+ configProperty_ = s.configProperty_;
+
+ implementation_ = s.implementation_;
+
+ infoProperty_ = s.infoProperty_;
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ConnectorPackageDescription
+ //
+ bool ConnectorPackageDescription::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectorPackageDescription::
+ label () const
+ {
+ return *label_;
+ }
+
+ void ConnectorPackageDescription::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // ConnectorPackageDescription
+ //
+ bool ConnectorPackageDescription::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectorPackageDescription::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void ConnectorPackageDescription::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // ConnectorPackageDescription
+ //
+ bool ConnectorPackageDescription::
+ realizes_p () const
+ {
+ return realizes_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& ConnectorPackageDescription::
+ realizes () const
+ {
+ return *realizes_;
+ }
+
+ void ConnectorPackageDescription::
+ realizes (::CIAO::Config_Handlers::ComponentInterfaceDescription const& e)
+ {
+ if (realizes_.get ())
+ {
+ *realizes_ = e;
+ }
+
+ else
+ {
+ realizes_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (new ::CIAO::Config_Handlers::ComponentInterfaceDescription (e));
+ realizes_->container (this);
+ }
+ }
+
+ // ConnectorPackageDescription
+ //
+ ConnectorPackageDescription::configProperty_iterator ConnectorPackageDescription::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ ConnectorPackageDescription::configProperty_iterator ConnectorPackageDescription::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ ConnectorPackageDescription::configProperty_const_iterator ConnectorPackageDescription::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ ConnectorPackageDescription::configProperty_const_iterator ConnectorPackageDescription::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void ConnectorPackageDescription::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t ConnectorPackageDescription::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // ConnectorPackageDescription
+ //
+ ConnectorPackageDescription::implementation_iterator ConnectorPackageDescription::
+ begin_implementation ()
+ {
+ return implementation_.begin ();
+ }
+
+ ConnectorPackageDescription::implementation_iterator ConnectorPackageDescription::
+ end_implementation ()
+ {
+ return implementation_.end ();
+ }
+
+ ConnectorPackageDescription::implementation_const_iterator ConnectorPackageDescription::
+ begin_implementation () const
+ {
+ return implementation_.begin ();
+ }
+
+ ConnectorPackageDescription::implementation_const_iterator ConnectorPackageDescription::
+ end_implementation () const
+ {
+ return implementation_.end ();
+ }
+
+ void ConnectorPackageDescription::
+ add_implementation (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectorImplementationDescription, ACE_Null_Mutex > const& e)
+ {
+ implementation_.push_back (e);
+ }
+
+ size_t ConnectorPackageDescription::
+ count_implementation(void) const
+ {
+ return implementation_.size ();
+ }
+
+ // ConnectorPackageDescription
+ //
+ ConnectorPackageDescription::infoProperty_iterator ConnectorPackageDescription::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ ConnectorPackageDescription::infoProperty_iterator ConnectorPackageDescription::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ ConnectorPackageDescription::infoProperty_const_iterator ConnectorPackageDescription::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ ConnectorPackageDescription::infoProperty_const_iterator ConnectorPackageDescription::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void ConnectorPackageDescription::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t ConnectorPackageDescription::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // ConnectorPackageDescription
+ //
+ bool ConnectorPackageDescription::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ConnectorPackageDescription::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& ConnectorPackageDescription::
+ href ()
+ {
+ return *href_;
+ }
+
+ void ConnectorPackageDescription::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // PackagedComponentImplementation
+ //
+
+ PackagedComponentImplementation::
+ PackagedComponentImplementation (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("referencedImplementation"))
+ {
+ referencedImplementation_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentImplementationDescription > (new ::CIAO::Config_Handlers::ComponentImplementationDescription (e));
+ referencedImplementation_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ComponentPackageDescription
+ //
+
+ ComponentPackageDescription::
+ ComponentPackageDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("realizes"))
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription t (e);
+ realizes (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("implementation"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PackagedComponentImplementation (e));
+ add_implementation (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ConnectorPackageDescription
+ //
+
+ ConnectorPackageDescription::
+ ConnectorPackageDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("realizes"))
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription t (e);
+ realizes (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("implementation"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectorImplementationDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ConnectorImplementationDescription (e));
+ add_implementation (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct PackagedComponentImplementationTypeInfoInitializer
+ {
+ PackagedComponentImplementationTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PackagedComponentImplementation));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PackagedComponentImplementationTypeInfoInitializer PackagedComponentImplementationTypeInfoInitializer_;
+
+ struct ComponentPackageDescriptionTypeInfoInitializer
+ {
+ ComponentPackageDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPackageDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentPackageDescriptionTypeInfoInitializer ComponentPackageDescriptionTypeInfoInitializer_;
+
+ struct ConnectorPackageDescriptionTypeInfoInitializer
+ {
+ ConnectorPackageDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ConnectorPackageDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ConnectorPackageDescriptionTypeInfoInitializer ConnectorPackageDescriptionTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // PackagedComponentImplementation
+ //
+ //
+
+ void PackagedComponentImplementation::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ referencedImplementation (o);
+ post (o);
+ }
+
+ void PackagedComponentImplementation::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ referencedImplementation (o);
+ post (o);
+ }
+
+ void PackagedComponentImplementation::
+ pre (Type&)
+ {
+ }
+
+ void PackagedComponentImplementation::
+ pre (Type const&)
+ {
+ }
+
+ void PackagedComponentImplementation::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void PackagedComponentImplementation::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void PackagedComponentImplementation::
+ referencedImplementation (Type& o)
+ {
+ dispatch (o.referencedImplementation ());
+ }
+
+ void PackagedComponentImplementation::
+ referencedImplementation (Type const& o)
+ {
+ dispatch (o.referencedImplementation ());
+ }
+
+ void PackagedComponentImplementation::
+ post (Type&)
+ {
+ }
+
+ void PackagedComponentImplementation::
+ post (Type const&)
+ {
+ }
+
+ // ComponentPackageDescription
+ //
+ //
+
+ void ComponentPackageDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.realizes_p ()) realizes (o);
+ else realizes_none (o);
+ configProperty (o);
+ implementation (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ComponentPackageDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.realizes_p ()) realizes (o);
+ else realizes_none (o);
+ configProperty (o);
+ implementation (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ComponentPackageDescription::
+ pre (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ComponentPackageDescription::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ComponentPackageDescription::
+ label_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ label_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ComponentPackageDescription::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ComponentPackageDescription::
+ UUID_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ UUID_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ realizes (Type& o)
+ {
+ dispatch (o.realizes ());
+ }
+
+ void ComponentPackageDescription::
+ realizes (Type const& o)
+ {
+ dispatch (o.realizes ());
+ }
+
+ void ComponentPackageDescription::
+ realizes_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ realizes_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ComponentPackageDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ComponentPackageDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageDescription::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
+
+ if (b != e)
+ {
+ implementation_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) implementation_next (o);
+ }
+
+ implementation_post (o);
+ }
+
+ else implementation_none (o);
+ }
+
+ void ComponentPackageDescription::
+ implementation (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageDescription::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
+
+ if (b != e)
+ {
+ implementation_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) implementation_next (o);
+ }
+
+ implementation_post (o);
+ }
+
+ else implementation_none (o);
+ }
+
+ void ComponentPackageDescription::
+ implementation_pre (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_pre (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_next (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_next (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_post (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_post (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ implementation_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ComponentPackageDescription::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ComponentPackageDescription::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ComponentPackageDescription::
+ href_none (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ href_none (Type const&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ post (Type&)
+ {
+ }
+
+ void ComponentPackageDescription::
+ post (Type const&)
+ {
+ }
+
+ // ConnectorPackageDescription
+ //
+ //
+
+ void ConnectorPackageDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.realizes_p ()) realizes (o);
+ else realizes_none (o);
+ configProperty (o);
+ implementation (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ConnectorPackageDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.realizes_p ()) realizes (o);
+ else realizes_none (o);
+ configProperty (o);
+ implementation (o);
+ infoProperty (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ConnectorPackageDescription::
+ pre (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ConnectorPackageDescription::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ConnectorPackageDescription::
+ label_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ label_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ConnectorPackageDescription::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ConnectorPackageDescription::
+ UUID_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ UUID_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ realizes (Type& o)
+ {
+ dispatch (o.realizes ());
+ }
+
+ void ConnectorPackageDescription::
+ realizes (Type const& o)
+ {
+ dispatch (o.realizes ());
+ }
+
+ void ConnectorPackageDescription::
+ realizes_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ realizes_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorPackageDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ConnectorPackageDescription::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorPackageDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_next (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_post (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorPackageDescription::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
+
+ if (b != e)
+ {
+ implementation_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) implementation_next (o);
+ }
+
+ implementation_post (o);
+ }
+
+ else implementation_none (o);
+ }
+
+ void ConnectorPackageDescription::
+ implementation (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorPackageDescription::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
+
+ if (b != e)
+ {
+ implementation_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) implementation_next (o);
+ }
+
+ implementation_post (o);
+ }
+
+ else implementation_none (o);
+ }
+
+ void ConnectorPackageDescription::
+ implementation_pre (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_pre (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_next (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_next (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_post (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_post (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ implementation_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorPackageDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ConnectorPackageDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ConnectorPackageDescription::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ConnectorPackageDescription::
+ href_none (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ href_none (Type const&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ post (Type&)
+ {
+ }
+
+ void ConnectorPackageDescription::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // PackagedComponentImplementation
+ //
+ //
+
+ PackagedComponentImplementation::
+ PackagedComponentImplementation (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PackagedComponentImplementation::
+ PackagedComponentImplementation ()
+ {
+ }
+
+ void PackagedComponentImplementation::
+ traverse (Type const& o)
+ {
+ Traversal::PackagedComponentImplementation::traverse (o);
+ }
+
+ void PackagedComponentImplementation::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::PackagedComponentImplementation::name (o);
+ pop_ ();
+ }
+
+ void PackagedComponentImplementation::
+ referencedImplementation (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("referencedImplementation"), top_ ()));
+ Traversal::PackagedComponentImplementation::referencedImplementation (o);
+ pop_ ();
+ }
+
+ // ComponentPackageDescription
+ //
+ //
+
+ ComponentPackageDescription::
+ ComponentPackageDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentPackageDescription::
+ ComponentPackageDescription ()
+ {
+ }
+
+ void ComponentPackageDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentPackageDescription::traverse (o);
+ }
+
+ void ComponentPackageDescription::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::ComponentPackageDescription::label (o);
+ pop_ ();
+ }
+
+ void ComponentPackageDescription::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::ComponentPackageDescription::UUID (o);
+ pop_ ();
+ }
+
+ void ComponentPackageDescription::
+ realizes (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("realizes"), top_ ()));
+ Traversal::ComponentPackageDescription::realizes (o);
+ pop_ ();
+ }
+
+ void ComponentPackageDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void ComponentPackageDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void ComponentPackageDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentPackageDescription::
+ implementation_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("implementation"), top_ ()));
+ }
+
+ void ComponentPackageDescription::
+ implementation_next (Type const& o)
+ {
+ implementation_post (o);
+ implementation_pre (o);
+ }
+
+ void ComponentPackageDescription::
+ implementation_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void ComponentPackageDescription::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ComponentPackageDescription::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ComponentPackageDescription::href (o);
+ attr_ (0);
+ }
+
+ // ConnectorPackageDescription
+ //
+ //
+
+ ConnectorPackageDescription::
+ ConnectorPackageDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ConnectorPackageDescription::
+ ConnectorPackageDescription ()
+ {
+ }
+
+ void ConnectorPackageDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ConnectorPackageDescription::traverse (o);
+ }
+
+ void ConnectorPackageDescription::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::ConnectorPackageDescription::label (o);
+ pop_ ();
+ }
+
+ void ConnectorPackageDescription::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::ConnectorPackageDescription::UUID (o);
+ pop_ ();
+ }
+
+ void ConnectorPackageDescription::
+ realizes (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("realizes"), top_ ()));
+ Traversal::ConnectorPackageDescription::realizes (o);
+ pop_ ();
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void ConnectorPackageDescription::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorPackageDescription::
+ implementation_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("implementation"), top_ ()));
+ }
+
+ void ConnectorPackageDescription::
+ implementation_next (Type const& o)
+ {
+ implementation_post (o);
+ implementation_pre (o);
+ }
+
+ void ConnectorPackageDescription::
+ implementation_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void ConnectorPackageDescription::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ConnectorPackageDescription::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ConnectorPackageDescription::href (o);
+ attr_ (0);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/cpd.hpp b/modules/CIAO/DAnCE/Config_Handlers/cpd.hpp
new file mode 100644
index 00000000000..a6a295393bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/cpd.hpp
@@ -0,0 +1,1008 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef CPD_HPP
+#define CPD_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class PackagedComponentImplementation;
+ class ComponentPackageDescription;
+ class ConnectorPackageDescription;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "cid.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export PackagedComponentImplementation : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PackagedComponentImplementation, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // referencedImplementation
+ //
+ public:
+ ::CIAO::Config_Handlers::ComponentImplementationDescription const& referencedImplementation () const;
+ void referencedImplementation (::CIAO::Config_Handlers::ComponentImplementationDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentImplementationDescription > referencedImplementation_;
+
+ public:
+ PackagedComponentImplementation (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::ComponentImplementationDescription const& referencedImplementation__);
+
+ PackagedComponentImplementation (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PackagedComponentImplementation (PackagedComponentImplementation const& s);
+
+ PackagedComponentImplementation&
+ operator= (PackagedComponentImplementation const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ComponentPackageDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPackageDescription, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // realizes
+ //
+ public:
+ bool realizes_p () const;
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& realizes () const;
+ void realizes (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > realizes_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // implementation
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > >::iterator implementation_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > >::const_iterator implementation_const_iterator;
+ implementation_iterator begin_implementation ();
+ implementation_iterator end_implementation ();
+ implementation_const_iterator begin_implementation () const;
+ implementation_const_iterator end_implementation () const;
+ void add_implementation ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > const& );
+ XSCRT::Type* implementation_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_implementation (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > > implementation_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ public:
+ ComponentPackageDescription ();
+
+ ComponentPackageDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentPackageDescription (ComponentPackageDescription const& s);
+
+ ComponentPackageDescription&
+ operator= (ComponentPackageDescription const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ConnectorPackageDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ConnectorPackageDescription, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // realizes
+ //
+ public:
+ bool realizes_p () const;
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription const& realizes () const;
+ void realizes (::CIAO::Config_Handlers::ComponentInterfaceDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > realizes_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // implementation
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectorImplementationDescription, ACE_Null_Mutex > >::iterator implementation_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectorImplementationDescription, ACE_Null_Mutex > >::const_iterator implementation_const_iterator;
+ implementation_iterator begin_implementation ();
+ implementation_iterator end_implementation ();
+ implementation_const_iterator begin_implementation () const;
+ implementation_const_iterator end_implementation () const;
+ void add_implementation ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectorImplementationDescription, ACE_Null_Mutex > const& );
+ XSCRT::Type* implementation_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_implementation (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectorImplementationDescription, ACE_Null_Mutex > > implementation_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ public:
+ ConnectorPackageDescription ();
+
+ ConnectorPackageDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ConnectorPackageDescription (ConnectorPackageDescription const& s);
+
+ ConnectorPackageDescription&
+ operator= (ConnectorPackageDescription const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export PackagedComponentImplementation : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PackagedComponentImplementation >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ referencedImplementation (Type&);
+
+ virtual void
+ referencedImplementation (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ComponentPackageDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentPackageDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ realizes (Type&);
+
+ virtual void
+ realizes (Type const&);
+
+ virtual void
+ realizes_none (Type&);
+
+ virtual void
+ realizes_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ implementation (Type&);
+
+ virtual void
+ implementation (Type const&);
+
+ virtual void
+ implementation_pre (Type&);
+
+ virtual void
+ implementation_pre (Type const&);
+
+ virtual void
+ implementation_next (Type&);
+
+ virtual void
+ implementation_next (Type const&);
+
+ virtual void
+ implementation_post (Type&);
+
+ virtual void
+ implementation_post (Type const&);
+
+ virtual void
+ implementation_none (Type&);
+
+ virtual void
+ implementation_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ConnectorPackageDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ConnectorPackageDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ realizes (Type&);
+
+ virtual void
+ realizes (Type const&);
+
+ virtual void
+ realizes_none (Type&);
+
+ virtual void
+ realizes_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ implementation (Type&);
+
+ virtual void
+ implementation (Type const&);
+
+ virtual void
+ implementation_pre (Type&);
+
+ virtual void
+ implementation_pre (Type const&);
+
+ virtual void
+ implementation_next (Type&);
+
+ virtual void
+ implementation_next (Type const&);
+
+ virtual void
+ implementation_post (Type&);
+
+ virtual void
+ implementation_post (Type const&);
+
+ virtual void
+ implementation_none (Type&);
+
+ virtual void
+ implementation_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct PackagedComponentImplementation : Traversal::PackagedComponentImplementation,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PackagedComponentImplementation Type;
+ PackagedComponentImplementation (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ referencedImplementation (Type &o)
+ {
+ this->referencedImplementation (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ referencedImplementation (Type const&);
+
+ protected:
+ PackagedComponentImplementation ();
+ };
+
+ struct ComponentPackageDescription : Traversal::ComponentPackageDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentPackageDescription Type;
+ ComponentPackageDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ realizes (Type &o)
+ {
+ this->realizes (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ realizes (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ implementation_pre (Type &o)
+ {
+ this->implementation_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_pre (Type const&);
+
+ virtual void
+ implementation_next (Type &o)
+ {
+ this->implementation_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_next (Type const&);
+
+ virtual void
+ implementation_post (Type &o)
+ {
+ this->implementation_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ protected:
+ ComponentPackageDescription ();
+ };
+
+ struct ConnectorPackageDescription : Traversal::ConnectorPackageDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ConnectorPackageDescription Type;
+ ConnectorPackageDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ realizes (Type &o)
+ {
+ this->realizes (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ realizes (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ implementation_pre (Type &o)
+ {
+ this->implementation_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_pre (Type const&);
+
+ virtual void
+ implementation_next (Type &o)
+ {
+ this->implementation_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_next (Type const&);
+
+ virtual void
+ implementation_post (Type &o)
+ {
+ this->implementation_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ implementation_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ protected:
+ ConnectorPackageDescription ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // CPD_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/iad.cpp b/modules/CIAO/DAnCE/Config_Handlers/iad.cpp
new file mode 100644
index 00000000000..a3fbba62363
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/iad.cpp
@@ -0,0 +1,1491 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "iad.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // NamedImplementationArtifact
+ //
+
+ NamedImplementationArtifact::
+ NamedImplementationArtifact (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription const& referencedArtifact__)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ referencedArtifact_ (new ::CIAO::Config_Handlers::ImplementationArtifactDescription (referencedArtifact__)),
+ regulator__ ()
+ {
+ name_->container (this);
+ referencedArtifact_->container (this);
+ }
+
+ NamedImplementationArtifact::
+ NamedImplementationArtifact (NamedImplementationArtifact const& s)
+ :
+ ::XSCRT::Type (),
+ name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ referencedArtifact_ (new ::CIAO::Config_Handlers::ImplementationArtifactDescription (*s.referencedArtifact_)),
+ regulator__ ()
+ {
+ name_->container (this);
+ referencedArtifact_->container (this);
+ }
+
+ NamedImplementationArtifact& NamedImplementationArtifact::
+ operator= (NamedImplementationArtifact const& s)
+ {
+ name (*s.name_);
+
+ referencedArtifact (*s.referencedArtifact_);
+
+ return *this;
+ }
+
+
+ // NamedImplementationArtifact
+ //
+ ::XMLSchema::string< ACE_TCHAR > const& NamedImplementationArtifact::
+ name () const
+ {
+ return *name_;
+ }
+
+ void NamedImplementationArtifact::
+ name (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ *name_ = e;
+ }
+
+ // NamedImplementationArtifact
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription const& NamedImplementationArtifact::
+ referencedArtifact () const
+ {
+ return *referencedArtifact_;
+ }
+
+ void NamedImplementationArtifact::
+ referencedArtifact (::CIAO::Config_Handlers::ImplementationArtifactDescription const& e)
+ {
+ *referencedArtifact_ = e;
+ }
+
+
+ // ImplementationArtifactDescription
+ //
+
+ ImplementationArtifactDescription::
+ ImplementationArtifactDescription ()
+ :
+ regulator__ ()
+ {
+ }
+
+ ImplementationArtifactDescription::
+ ImplementationArtifactDescription (ImplementationArtifactDescription const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ location_ (s.location_),
+ dependsOn_ (s.dependsOn_),
+ execParameter_ (s.execParameter_),
+ infoProperty_ (s.infoProperty_),
+ deployRequirement_ (s.deployRequirement_),
+ contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
+ href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (contentLocation_.get ()) contentLocation_->container (this);
+ if (href_.get ()) href_->container (this);
+ }
+
+ ImplementationArtifactDescription& ImplementationArtifactDescription::
+ operator= (ImplementationArtifactDescription const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ location_ = s.location_;
+
+ dependsOn_ = s.dependsOn_;
+
+ execParameter_ = s.execParameter_;
+
+ infoProperty_ = s.infoProperty_;
+
+ deployRequirement_ = s.deployRequirement_;
+
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
+
+ if (s.href_.get ()) href (*(s.href_));
+ else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+
+ return *this;
+ }
+
+
+ // ImplementationArtifactDescription
+ //
+ bool ImplementationArtifactDescription::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationArtifactDescription::
+ label () const
+ {
+ return *label_;
+ }
+
+ void ImplementationArtifactDescription::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // ImplementationArtifactDescription
+ //
+ bool ImplementationArtifactDescription::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationArtifactDescription::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void ImplementationArtifactDescription::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // ImplementationArtifactDescription
+ //
+ ImplementationArtifactDescription::location_iterator ImplementationArtifactDescription::
+ begin_location ()
+ {
+ return location_.begin ();
+ }
+
+ ImplementationArtifactDescription::location_iterator ImplementationArtifactDescription::
+ end_location ()
+ {
+ return location_.end ();
+ }
+
+ ImplementationArtifactDescription::location_const_iterator ImplementationArtifactDescription::
+ begin_location () const
+ {
+ return location_.begin ();
+ }
+
+ ImplementationArtifactDescription::location_const_iterator ImplementationArtifactDescription::
+ end_location () const
+ {
+ return location_.end ();
+ }
+
+ void ImplementationArtifactDescription::
+ add_location (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ location_.push_back (e);
+ }
+
+ size_t ImplementationArtifactDescription::
+ count_location(void) const
+ {
+ return location_.size ();
+ }
+
+ // ImplementationArtifactDescription
+ //
+ ImplementationArtifactDescription::dependsOn_iterator ImplementationArtifactDescription::
+ begin_dependsOn ()
+ {
+ return dependsOn_.begin ();
+ }
+
+ ImplementationArtifactDescription::dependsOn_iterator ImplementationArtifactDescription::
+ end_dependsOn ()
+ {
+ return dependsOn_.end ();
+ }
+
+ ImplementationArtifactDescription::dependsOn_const_iterator ImplementationArtifactDescription::
+ begin_dependsOn () const
+ {
+ return dependsOn_.begin ();
+ }
+
+ ImplementationArtifactDescription::dependsOn_const_iterator ImplementationArtifactDescription::
+ end_dependsOn () const
+ {
+ return dependsOn_.end ();
+ }
+
+ void ImplementationArtifactDescription::
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& e)
+ {
+ dependsOn_.push_back (e);
+ }
+
+ size_t ImplementationArtifactDescription::
+ count_dependsOn(void) const
+ {
+ return dependsOn_.size ();
+ }
+
+ // ImplementationArtifactDescription
+ //
+ ImplementationArtifactDescription::execParameter_iterator ImplementationArtifactDescription::
+ begin_execParameter ()
+ {
+ return execParameter_.begin ();
+ }
+
+ ImplementationArtifactDescription::execParameter_iterator ImplementationArtifactDescription::
+ end_execParameter ()
+ {
+ return execParameter_.end ();
+ }
+
+ ImplementationArtifactDescription::execParameter_const_iterator ImplementationArtifactDescription::
+ begin_execParameter () const
+ {
+ return execParameter_.begin ();
+ }
+
+ ImplementationArtifactDescription::execParameter_const_iterator ImplementationArtifactDescription::
+ end_execParameter () const
+ {
+ return execParameter_.end ();
+ }
+
+ void ImplementationArtifactDescription::
+ add_execParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ execParameter_.push_back (e);
+ }
+
+ size_t ImplementationArtifactDescription::
+ count_execParameter(void) const
+ {
+ return execParameter_.size ();
+ }
+
+ // ImplementationArtifactDescription
+ //
+ ImplementationArtifactDescription::infoProperty_iterator ImplementationArtifactDescription::
+ begin_infoProperty ()
+ {
+ return infoProperty_.begin ();
+ }
+
+ ImplementationArtifactDescription::infoProperty_iterator ImplementationArtifactDescription::
+ end_infoProperty ()
+ {
+ return infoProperty_.end ();
+ }
+
+ ImplementationArtifactDescription::infoProperty_const_iterator ImplementationArtifactDescription::
+ begin_infoProperty () const
+ {
+ return infoProperty_.begin ();
+ }
+
+ ImplementationArtifactDescription::infoProperty_const_iterator ImplementationArtifactDescription::
+ end_infoProperty () const
+ {
+ return infoProperty_.end ();
+ }
+
+ void ImplementationArtifactDescription::
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ infoProperty_.push_back (e);
+ }
+
+ size_t ImplementationArtifactDescription::
+ count_infoProperty(void) const
+ {
+ return infoProperty_.size ();
+ }
+
+ // ImplementationArtifactDescription
+ //
+ ImplementationArtifactDescription::deployRequirement_iterator ImplementationArtifactDescription::
+ begin_deployRequirement ()
+ {
+ return deployRequirement_.begin ();
+ }
+
+ ImplementationArtifactDescription::deployRequirement_iterator ImplementationArtifactDescription::
+ end_deployRequirement ()
+ {
+ return deployRequirement_.end ();
+ }
+
+ ImplementationArtifactDescription::deployRequirement_const_iterator ImplementationArtifactDescription::
+ begin_deployRequirement () const
+ {
+ return deployRequirement_.begin ();
+ }
+
+ ImplementationArtifactDescription::deployRequirement_const_iterator ImplementationArtifactDescription::
+ end_deployRequirement () const
+ {
+ return deployRequirement_.end ();
+ }
+
+ void ImplementationArtifactDescription::
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ deployRequirement_.push_back (e);
+ }
+
+ size_t ImplementationArtifactDescription::
+ count_deployRequirement(void) const
+ {
+ return deployRequirement_.size ();
+ }
+
+ // ImplementationArtifactDescription
+ //
+ bool ImplementationArtifactDescription::
+ contentLocation_p () const
+ {
+ return contentLocation_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationArtifactDescription::
+ contentLocation () const
+ {
+ return *contentLocation_;
+ }
+
+ void ImplementationArtifactDescription::
+ contentLocation (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (contentLocation_.get ())
+ {
+ *contentLocation_ = e;
+ }
+
+ else
+ {
+ contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ contentLocation_->container (this);
+ }
+ }
+
+ // ImplementationArtifactDescription
+ //
+ bool ImplementationArtifactDescription::
+ href_p () const
+ {
+ return href_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& ImplementationArtifactDescription::
+ href () const
+ {
+ return *href_;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR >& ImplementationArtifactDescription::
+ href ()
+ {
+ return *href_;
+ }
+
+ void ImplementationArtifactDescription::
+ href (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (href_.get ())
+ {
+ *href_ = e;
+ }
+
+ else
+ {
+ href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ href_->container (this);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // NamedImplementationArtifact
+ //
+
+ NamedImplementationArtifact::
+ NamedImplementationArtifact (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("name"))
+ {
+ name_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ name_->container (this);
+ }
+
+ else if (n == ACE_TEXT("referencedArtifact"))
+ {
+ referencedArtifact_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ImplementationArtifactDescription > (new ::CIAO::Config_Handlers::ImplementationArtifactDescription (e));
+ referencedArtifact_->container (this);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // ImplementationArtifactDescription
+ //
+
+ ImplementationArtifactDescription::
+ ImplementationArtifactDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("location"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_location (t);
+ }
+
+ else if (n == ACE_TEXT("dependsOn"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::NamedImplementationArtifact (e));
+ add_dependsOn (t);
+ }
+
+ else if (n == ACE_TEXT("execParameter"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_execParameter (t);
+ }
+
+ else if (n == ACE_TEXT("infoProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_infoProperty (t);
+ }
+
+ else if (n == ACE_TEXT("deployRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_deployRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("contentLocation"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ contentLocation (t);
+ }
+
+ else
+ {
+ }
+ }
+
+ while (p.more_attributes ())
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
+ if (n == ACE_TEXT ("href"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (a);
+ href (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct NamedImplementationArtifactTypeInfoInitializer
+ {
+ NamedImplementationArtifactTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::NamedImplementationArtifact));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ NamedImplementationArtifactTypeInfoInitializer NamedImplementationArtifactTypeInfoInitializer_;
+
+ struct ImplementationArtifactDescriptionTypeInfoInitializer
+ {
+ ImplementationArtifactDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ImplementationArtifactDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ImplementationArtifactDescriptionTypeInfoInitializer ImplementationArtifactDescriptionTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // NamedImplementationArtifact
+ //
+ //
+
+ void NamedImplementationArtifact::
+ traverse (Type& o)
+ {
+ pre (o);
+ name (o);
+ referencedArtifact (o);
+ post (o);
+ }
+
+ void NamedImplementationArtifact::
+ traverse (Type const& o)
+ {
+ pre (o);
+ name (o);
+ referencedArtifact (o);
+ post (o);
+ }
+
+ void NamedImplementationArtifact::
+ pre (Type&)
+ {
+ }
+
+ void NamedImplementationArtifact::
+ pre (Type const&)
+ {
+ }
+
+ void NamedImplementationArtifact::
+ name (Type& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void NamedImplementationArtifact::
+ name (Type const& o)
+ {
+ dispatch (o.name ());
+ }
+
+ void NamedImplementationArtifact::
+ referencedArtifact (Type& o)
+ {
+ dispatch (o.referencedArtifact ());
+ }
+
+ void NamedImplementationArtifact::
+ referencedArtifact (Type const& o)
+ {
+ dispatch (o.referencedArtifact ());
+ }
+
+ void NamedImplementationArtifact::
+ post (Type&)
+ {
+ }
+
+ void NamedImplementationArtifact::
+ post (Type const&)
+ {
+ }
+
+ // ImplementationArtifactDescription
+ //
+ //
+
+ void ImplementationArtifactDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ location (o);
+ dependsOn (o);
+ execParameter (o);
+ infoProperty (o);
+ deployRequirement (o);
+ if (o.contentLocation_p ()) contentLocation (o);
+ else contentLocation_none (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ImplementationArtifactDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ location (o);
+ dependsOn (o);
+ execParameter (o);
+ infoProperty (o);
+ deployRequirement (o);
+ if (o.contentLocation_p ()) contentLocation (o);
+ else contentLocation_none (o);
+ if (o.href_p ()) href (o);
+ else href_none (o);
+ post (o);
+ }
+
+ void ImplementationArtifactDescription::
+ pre (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ pre (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ImplementationArtifactDescription::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void ImplementationArtifactDescription::
+ label_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ label_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ImplementationArtifactDescription::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void ImplementationArtifactDescription::
+ UUID_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ UUID_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::location_iterator b (o.begin_location()), e (o.end_location());
+
+ if (b != e)
+ {
+ location_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) location_next (o);
+ }
+
+ location_post (o);
+ }
+
+ else location_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ location (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::location_const_iterator b (o.begin_location()), e (o.end_location());
+
+ if (b != e)
+ {
+ location_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) location_next (o);
+ }
+
+ location_post (o);
+ }
+
+ else location_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ location_pre (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_pre (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_next (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_next (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_post (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_post (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ location_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+
+ if (b != e)
+ {
+ dependsOn_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) dependsOn_next (o);
+ }
+
+ dependsOn_post (o);
+ }
+
+ else dependsOn_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_pre (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_pre (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_next (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_next (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_post (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_post (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+
+ if (b != e)
+ {
+ execParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) execParameter_next (o);
+ }
+
+ execParameter_post (o);
+ }
+
+ else execParameter_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+
+ if (b != e)
+ {
+ execParameter_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) execParameter_next (o);
+ }
+
+ execParameter_post (o);
+ }
+
+ else execParameter_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_pre (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_pre (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_next (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_next (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_post (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_post (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+
+ if (b != e)
+ {
+ infoProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) infoProperty_next (o);
+ }
+
+ infoProperty_post (o);
+ }
+
+ else infoProperty_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_pre (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_pre (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_next (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_next (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_post (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_post (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+
+ if (b != e)
+ {
+ deployRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) deployRequirement_next (o);
+ }
+
+ deployRequirement_post (o);
+ }
+
+ else deployRequirement_none (o);
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_pre (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_pre (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_next (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_next (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_post (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_post (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ contentLocation (Type& o)
+ {
+ dispatch (o.contentLocation ());
+ }
+
+ void ImplementationArtifactDescription::
+ contentLocation (Type const& o)
+ {
+ dispatch (o.contentLocation ());
+ }
+
+ void ImplementationArtifactDescription::
+ contentLocation_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ contentLocation_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ href (Type& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ImplementationArtifactDescription::
+ href (Type const& o)
+ {
+ dispatch (o.href ());
+ }
+
+ void ImplementationArtifactDescription::
+ href_none (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ href_none (Type const&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ post (Type&)
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // NamedImplementationArtifact
+ //
+ //
+
+ NamedImplementationArtifact::
+ NamedImplementationArtifact (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ NamedImplementationArtifact::
+ NamedImplementationArtifact ()
+ {
+ }
+
+ void NamedImplementationArtifact::
+ traverse (Type const& o)
+ {
+ Traversal::NamedImplementationArtifact::traverse (o);
+ }
+
+ void NamedImplementationArtifact::
+ name (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("name"), top_ ()));
+ Traversal::NamedImplementationArtifact::name (o);
+ pop_ ();
+ }
+
+ void NamedImplementationArtifact::
+ referencedArtifact (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("referencedArtifact"), top_ ()));
+ Traversal::NamedImplementationArtifact::referencedArtifact (o);
+ pop_ ();
+ }
+
+ // ImplementationArtifactDescription
+ //
+ //
+
+ ImplementationArtifactDescription::
+ ImplementationArtifactDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ImplementationArtifactDescription::
+ ImplementationArtifactDescription ()
+ {
+ }
+
+ void ImplementationArtifactDescription::
+ traverse (Type const& o)
+ {
+ Traversal::ImplementationArtifactDescription::traverse (o);
+ }
+
+ void ImplementationArtifactDescription::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::ImplementationArtifactDescription::label (o);
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::ImplementationArtifactDescription::UUID (o);
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ location_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("location"), top_ ()));
+ }
+
+ void ImplementationArtifactDescription::
+ location_next (Type const& o)
+ {
+ location_post (o);
+ location_pre (o);
+ }
+
+ void ImplementationArtifactDescription::
+ location_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("dependsOn"), top_ ()));
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_next (Type const& o)
+ {
+ dependsOn_post (o);
+ dependsOn_pre (o);
+ }
+
+ void ImplementationArtifactDescription::
+ dependsOn_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("execParameter"), top_ ()));
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_next (Type const& o)
+ {
+ execParameter_post (o);
+ execParameter_pre (o);
+ }
+
+ void ImplementationArtifactDescription::
+ execParameter_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("infoProperty"), top_ ()));
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_next (Type const& o)
+ {
+ infoProperty_post (o);
+ infoProperty_pre (o);
+ }
+
+ void ImplementationArtifactDescription::
+ infoProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("deployRequirement"), top_ ()));
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_next (Type const& o)
+ {
+ deployRequirement_post (o);
+ deployRequirement_pre (o);
+ }
+
+ void ImplementationArtifactDescription::
+ deployRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ contentLocation (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("contentLocation"), top_ ()));
+ Traversal::ImplementationArtifactDescription::contentLocation (o);
+ pop_ ();
+ }
+
+ void ImplementationArtifactDescription::
+ href (Type const& o)
+ {
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a (ACE_TEXT ("href"), ACE_TEXT (""), top_ ());
+ attr_ (&a);
+ Traversal::ImplementationArtifactDescription::href (o);
+ attr_ (0);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/iad.hpp b/modules/CIAO/DAnCE/Config_Handlers/iad.hpp
new file mode 100644
index 00000000000..e26a5a4e1fb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/iad.hpp
@@ -0,0 +1,748 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef IAD_HPP
+#define IAD_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class NamedImplementationArtifact;
+ class ImplementationArtifactDescription;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "Basic_Deployment_Data.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export NamedImplementationArtifact : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < NamedImplementationArtifact, ACE_Null_Mutex > _ptr;
+
+ // name
+ //
+ public:
+ ::XMLSchema::string< ACE_TCHAR > const& name () const;
+ void name (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
+
+ // referencedArtifact
+ //
+ public:
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription const& referencedArtifact () const;
+ void referencedArtifact (::CIAO::Config_Handlers::ImplementationArtifactDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ImplementationArtifactDescription > referencedArtifact_;
+
+ public:
+ NamedImplementationArtifact (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription const& referencedArtifact__);
+
+ NamedImplementationArtifact (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ NamedImplementationArtifact (NamedImplementationArtifact const& s);
+
+ NamedImplementationArtifact&
+ operator= (NamedImplementationArtifact const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export ImplementationArtifactDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ImplementationArtifactDescription, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // location
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator location_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator location_const_iterator;
+ location_iterator begin_location ();
+ location_iterator end_location ();
+ location_const_iterator begin_location () const;
+ location_const_iterator end_location () const;
+ void add_location ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* location_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_location (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > location_;
+
+ // dependsOn
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
+ dependsOn_iterator begin_dependsOn ();
+ dependsOn_iterator end_dependsOn ();
+ dependsOn_const_iterator begin_dependsOn () const;
+ dependsOn_const_iterator end_dependsOn () const;
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& );
+ XSCRT::Type* dependsOn_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_dependsOn (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > > dependsOn_;
+
+ // execParameter
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator execParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator execParameter_const_iterator;
+ execParameter_iterator begin_execParameter ();
+ execParameter_iterator end_execParameter ();
+ execParameter_const_iterator begin_execParameter () const;
+ execParameter_const_iterator end_execParameter () const;
+ void add_execParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* execParameter_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_execParameter (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > execParameter_;
+
+ // infoProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
+ infoProperty_iterator begin_infoProperty ();
+ infoProperty_iterator end_infoProperty ();
+ infoProperty_const_iterator begin_infoProperty () const;
+ infoProperty_const_iterator end_infoProperty () const;
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* infoProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_infoProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
+
+ // deployRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
+ deployRequirement_iterator begin_deployRequirement ();
+ deployRequirement_iterator end_deployRequirement ();
+ deployRequirement_const_iterator begin_deployRequirement () const;
+ deployRequirement_const_iterator end_deployRequirement () const;
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* deployRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_deployRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
+
+ // contentLocation
+ //
+ public:
+ bool contentLocation_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& contentLocation () const;
+ void contentLocation (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > contentLocation_;
+
+ // href
+ //
+ public:
+ bool href_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& href () const;
+ ::XMLSchema::string< ACE_TCHAR >& href ();
+ void href (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
+
+ public:
+ ImplementationArtifactDescription ();
+
+ ImplementationArtifactDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ImplementationArtifactDescription (ImplementationArtifactDescription const& s);
+
+ ImplementationArtifactDescription&
+ operator= (ImplementationArtifactDescription const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export NamedImplementationArtifact : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::NamedImplementationArtifact >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ name (Type&);
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ referencedArtifact (Type&);
+
+ virtual void
+ referencedArtifact (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export ImplementationArtifactDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ImplementationArtifactDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ location (Type&);
+
+ virtual void
+ location (Type const&);
+
+ virtual void
+ location_pre (Type&);
+
+ virtual void
+ location_pre (Type const&);
+
+ virtual void
+ location_next (Type&);
+
+ virtual void
+ location_next (Type const&);
+
+ virtual void
+ location_post (Type&);
+
+ virtual void
+ location_post (Type const&);
+
+ virtual void
+ location_none (Type&);
+
+ virtual void
+ location_none (Type const&);
+
+ virtual void
+ dependsOn (Type&);
+
+ virtual void
+ dependsOn (Type const&);
+
+ virtual void
+ dependsOn_pre (Type&);
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type&);
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type&);
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ dependsOn_none (Type&);
+
+ virtual void
+ dependsOn_none (Type const&);
+
+ virtual void
+ execParameter (Type&);
+
+ virtual void
+ execParameter (Type const&);
+
+ virtual void
+ execParameter_pre (Type&);
+
+ virtual void
+ execParameter_pre (Type const&);
+
+ virtual void
+ execParameter_next (Type&);
+
+ virtual void
+ execParameter_next (Type const&);
+
+ virtual void
+ execParameter_post (Type&);
+
+ virtual void
+ execParameter_post (Type const&);
+
+ virtual void
+ execParameter_none (Type&);
+
+ virtual void
+ execParameter_none (Type const&);
+
+ virtual void
+ infoProperty (Type&);
+
+ virtual void
+ infoProperty (Type const&);
+
+ virtual void
+ infoProperty_pre (Type&);
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type&);
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type&);
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ infoProperty_none (Type&);
+
+ virtual void
+ infoProperty_none (Type const&);
+
+ virtual void
+ deployRequirement (Type&);
+
+ virtual void
+ deployRequirement (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type&);
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type&);
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type&);
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ deployRequirement_none (Type&);
+
+ virtual void
+ deployRequirement_none (Type const&);
+
+ virtual void
+ contentLocation (Type&);
+
+ virtual void
+ contentLocation (Type const&);
+
+ virtual void
+ contentLocation_none (Type&);
+
+ virtual void
+ contentLocation_none (Type const&);
+
+ virtual void
+ href (Type&);
+
+ virtual void
+ href (Type const&);
+
+ virtual void
+ href_none (Type&);
+
+ virtual void
+ href_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct NamedImplementationArtifact : Traversal::NamedImplementationArtifact,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::NamedImplementationArtifact Type;
+ NamedImplementationArtifact (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ name (Type &o)
+ {
+ this->name (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ name (Type const&);
+
+ virtual void
+ referencedArtifact (Type &o)
+ {
+ this->referencedArtifact (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ referencedArtifact (Type const&);
+
+ protected:
+ NamedImplementationArtifact ();
+ };
+
+ struct ImplementationArtifactDescription : Traversal::ImplementationArtifactDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ImplementationArtifactDescription Type;
+ ImplementationArtifactDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ location_pre (Type &o)
+ {
+ this->location_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_pre (Type const&);
+
+ virtual void
+ location_next (Type &o)
+ {
+ this->location_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_next (Type const&);
+
+ virtual void
+ location_post (Type &o)
+ {
+ this->location_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_post (Type const&);
+
+ virtual void
+ dependsOn_pre (Type &o)
+ {
+ this->dependsOn_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_pre (Type const&);
+
+ virtual void
+ dependsOn_next (Type &o)
+ {
+ this->dependsOn_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_next (Type const&);
+
+ virtual void
+ dependsOn_post (Type &o)
+ {
+ this->dependsOn_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ dependsOn_post (Type const&);
+
+ virtual void
+ execParameter_pre (Type &o)
+ {
+ this->execParameter_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_pre (Type const&);
+
+ virtual void
+ execParameter_next (Type &o)
+ {
+ this->execParameter_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_next (Type const&);
+
+ virtual void
+ execParameter_post (Type &o)
+ {
+ this->execParameter_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ execParameter_post (Type const&);
+
+ virtual void
+ infoProperty_pre (Type &o)
+ {
+ this->infoProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_pre (Type const&);
+
+ virtual void
+ infoProperty_next (Type &o)
+ {
+ this->infoProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_next (Type const&);
+
+ virtual void
+ infoProperty_post (Type &o)
+ {
+ this->infoProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ infoProperty_post (Type const&);
+
+ virtual void
+ deployRequirement_pre (Type &o)
+ {
+ this->deployRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_pre (Type const&);
+
+ virtual void
+ deployRequirement_next (Type &o)
+ {
+ this->deployRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_next (Type const&);
+
+ virtual void
+ deployRequirement_post (Type &o)
+ {
+ this->deployRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ deployRequirement_post (Type const&);
+
+ virtual void
+ contentLocation (Type &o)
+ {
+ this->contentLocation (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ contentLocation (Type const&);
+
+ virtual void
+ href (Type &o)
+ {
+ this->href (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ href (Type const&);
+
+ protected:
+ ImplementationArtifactDescription ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // IAD_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/pcd.cpp b/modules/CIAO/DAnCE/Config_Handlers/pcd.cpp
new file mode 100644
index 00000000000..6418d0172dc
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/pcd.cpp
@@ -0,0 +1,1304 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "pcd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // ComponentPackageImport
+ //
+
+ ComponentPackageImport::
+ ComponentPackageImport ()
+ :
+ ::XSCRT::Type (),
+ regulator__ ()
+ {
+ }
+
+ ComponentPackageImport::
+ ComponentPackageImport (ComponentPackageImport const& s)
+ :
+ ::XSCRT::Type (),
+ location_ (s.location_),
+ regulator__ ()
+ {
+ }
+
+ ComponentPackageImport& ComponentPackageImport::
+ operator= (ComponentPackageImport const& s)
+ {
+ location_ = s.location_;
+
+ return *this;
+ }
+
+
+ // ComponentPackageImport
+ //
+ ComponentPackageImport::location_iterator ComponentPackageImport::
+ begin_location ()
+ {
+ return location_.begin ();
+ }
+
+ ComponentPackageImport::location_iterator ComponentPackageImport::
+ end_location ()
+ {
+ return location_.end ();
+ }
+
+ ComponentPackageImport::location_const_iterator ComponentPackageImport::
+ begin_location () const
+ {
+ return location_.begin ();
+ }
+
+ ComponentPackageImport::location_const_iterator ComponentPackageImport::
+ end_location () const
+ {
+ return location_.end ();
+ }
+
+ void ComponentPackageImport::
+ add_location (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
+ {
+ location_.push_back (e);
+ }
+
+ size_t ComponentPackageImport::
+ count_location(void) const
+ {
+ return location_.size ();
+ }
+
+
+ // PackageConfiguration
+ //
+
+ PackageConfiguration::
+ PackageConfiguration ()
+ :
+ regulator__ ()
+ {
+ }
+
+ PackageConfiguration::
+ PackageConfiguration (PackageConfiguration const& s)
+ :
+ ::XSCRT::Type (),
+ label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ basePackage_ (s.basePackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageDescription (*s.basePackage_) : 0),
+ specializedConfig_ (s.specializedConfig_.get () ? new ::CIAO::Config_Handlers::PackageConfiguration (*s.specializedConfig_) : 0),
+ importedPackage_ (s.importedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageImport (*s.importedPackage_) : 0),
+ referencedPackage_ (s.referencedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageReference (*s.referencedPackage_) : 0),
+ selectRequirement_ (s.selectRequirement_),
+ configProperty_ (s.configProperty_),
+ contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
+ regulator__ ()
+ {
+ if (label_.get ()) label_->container (this);
+ if (UUID_.get ()) UUID_->container (this);
+ if (basePackage_.get ()) basePackage_->container (this);
+ if (specializedConfig_.get ()) specializedConfig_->container (this);
+ if (importedPackage_.get ()) importedPackage_->container (this);
+ if (referencedPackage_.get ()) referencedPackage_->container (this);
+ if (contentLocation_.get ()) contentLocation_->container (this);
+ }
+
+ PackageConfiguration& PackageConfiguration::
+ operator= (PackageConfiguration const& s)
+ {
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
+
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
+
+ if (s.basePackage_.get ())
+ basePackage (*(s.basePackage_));
+ else
+ basePackage_.reset (0);
+
+ if (s.specializedConfig_.get ())
+ specializedConfig (*(s.specializedConfig_));
+ else
+ specializedConfig_.reset (0);
+
+ if (s.importedPackage_.get ())
+ importedPackage (*(s.importedPackage_));
+ else
+ importedPackage_.reset (0);
+
+ if (s.referencedPackage_.get ())
+ referencedPackage (*(s.referencedPackage_));
+ else
+ referencedPackage_.reset (0);
+
+ selectRequirement_ = s.selectRequirement_;
+
+ configProperty_ = s.configProperty_;
+
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
+
+ return *this;
+ }
+
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ label_p () const
+ {
+ return label_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& PackageConfiguration::
+ label () const
+ {
+ return *label_;
+ }
+
+ void PackageConfiguration::
+ label (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (label_.get ())
+ {
+ *label_ = e;
+ }
+
+ else
+ {
+ label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ label_->container (this);
+ }
+ }
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ UUID_p () const
+ {
+ return UUID_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& PackageConfiguration::
+ UUID () const
+ {
+ return *UUID_;
+ }
+
+ void PackageConfiguration::
+ UUID (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (UUID_.get ())
+ {
+ *UUID_ = e;
+ }
+
+ else
+ {
+ UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ UUID_->container (this);
+ }
+ }
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ basePackage_p () const
+ {
+ return basePackage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentPackageDescription const& PackageConfiguration::
+ basePackage () const
+ {
+ return *basePackage_;
+ }
+
+ void PackageConfiguration::
+ basePackage (::CIAO::Config_Handlers::ComponentPackageDescription const& e)
+ {
+ if (basePackage_.get ())
+ {
+ *basePackage_ = e;
+ }
+
+ else
+ {
+ basePackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > (new ::CIAO::Config_Handlers::ComponentPackageDescription (e));
+ basePackage_->container (this);
+ }
+ }
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ specializedConfig_p () const
+ {
+ return specializedConfig_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::PackageConfiguration const& PackageConfiguration::
+ specializedConfig () const
+ {
+ return *specializedConfig_;
+ }
+
+ void PackageConfiguration::
+ specializedConfig (::CIAO::Config_Handlers::PackageConfiguration const& e)
+ {
+ if (specializedConfig_.get ())
+ {
+ *specializedConfig_ = e;
+ }
+
+ else
+ {
+ specializedConfig_ = ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > (new ::CIAO::Config_Handlers::PackageConfiguration (e));
+ specializedConfig_->container (this);
+ }
+ }
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ importedPackage_p () const
+ {
+ return importedPackage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentPackageImport const& PackageConfiguration::
+ importedPackage () const
+ {
+ return *importedPackage_;
+ }
+
+ void PackageConfiguration::
+ importedPackage (::CIAO::Config_Handlers::ComponentPackageImport const& e)
+ {
+ if (importedPackage_.get ())
+ {
+ *importedPackage_ = e;
+ }
+
+ else
+ {
+ importedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > (new ::CIAO::Config_Handlers::ComponentPackageImport (e));
+ importedPackage_->container (this);
+ }
+ }
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ referencedPackage_p () const
+ {
+ return referencedPackage_.get () != 0;
+ }
+
+ ::CIAO::Config_Handlers::ComponentPackageReference const& PackageConfiguration::
+ referencedPackage () const
+ {
+ return *referencedPackage_;
+ }
+
+ void PackageConfiguration::
+ referencedPackage (::CIAO::Config_Handlers::ComponentPackageReference const& e)
+ {
+ if (referencedPackage_.get ())
+ {
+ *referencedPackage_ = e;
+ }
+
+ else
+ {
+ referencedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > (new ::CIAO::Config_Handlers::ComponentPackageReference (e));
+ referencedPackage_->container (this);
+ }
+ }
+
+ // PackageConfiguration
+ //
+ PackageConfiguration::selectRequirement_iterator PackageConfiguration::
+ begin_selectRequirement ()
+ {
+ return selectRequirement_.begin ();
+ }
+
+ PackageConfiguration::selectRequirement_iterator PackageConfiguration::
+ end_selectRequirement ()
+ {
+ return selectRequirement_.end ();
+ }
+
+ PackageConfiguration::selectRequirement_const_iterator PackageConfiguration::
+ begin_selectRequirement () const
+ {
+ return selectRequirement_.begin ();
+ }
+
+ PackageConfiguration::selectRequirement_const_iterator PackageConfiguration::
+ end_selectRequirement () const
+ {
+ return selectRequirement_.end ();
+ }
+
+ void PackageConfiguration::
+ add_selectRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
+ {
+ selectRequirement_.push_back (e);
+ }
+
+ size_t PackageConfiguration::
+ count_selectRequirement(void) const
+ {
+ return selectRequirement_.size ();
+ }
+
+ // PackageConfiguration
+ //
+ PackageConfiguration::configProperty_iterator PackageConfiguration::
+ begin_configProperty ()
+ {
+ return configProperty_.begin ();
+ }
+
+ PackageConfiguration::configProperty_iterator PackageConfiguration::
+ end_configProperty ()
+ {
+ return configProperty_.end ();
+ }
+
+ PackageConfiguration::configProperty_const_iterator PackageConfiguration::
+ begin_configProperty () const
+ {
+ return configProperty_.begin ();
+ }
+
+ PackageConfiguration::configProperty_const_iterator PackageConfiguration::
+ end_configProperty () const
+ {
+ return configProperty_.end ();
+ }
+
+ void PackageConfiguration::
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
+ {
+ configProperty_.push_back (e);
+ }
+
+ size_t PackageConfiguration::
+ count_configProperty(void) const
+ {
+ return configProperty_.size ();
+ }
+
+ // PackageConfiguration
+ //
+ bool PackageConfiguration::
+ contentLocation_p () const
+ {
+ return contentLocation_.get () != 0;
+ }
+
+ ::XMLSchema::string< ACE_TCHAR > const& PackageConfiguration::
+ contentLocation () const
+ {
+ return *contentLocation_;
+ }
+
+ void PackageConfiguration::
+ contentLocation (::XMLSchema::string< ACE_TCHAR > const& e)
+ {
+ if (contentLocation_.get ())
+ {
+ *contentLocation_ = e;
+ }
+
+ else
+ {
+ contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (new ::XMLSchema::string< ACE_TCHAR > (e));
+ contentLocation_->container (this);
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // ComponentPackageImport
+ //
+
+ ComponentPackageImport::
+ ComponentPackageImport (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("location"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
+ add_location (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+
+ // PackageConfiguration
+ //
+
+ PackageConfiguration::
+ PackageConfiguration (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("label"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ label (t);
+ }
+
+ else if (n == ACE_TEXT("UUID"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ UUID (t);
+ }
+
+ else if (n == ACE_TEXT("basePackage"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageDescription t (e);
+ basePackage (t);
+ }
+
+ else if (n == ACE_TEXT("specializedConfig"))
+ {
+ ::CIAO::Config_Handlers::PackageConfiguration t (e);
+ specializedConfig (t);
+ }
+
+ else if (n == ACE_TEXT("importedPackage"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageImport t (e);
+ importedPackage (t);
+ }
+
+ else if (n == ACE_TEXT("referencedPackage"))
+ {
+ ::CIAO::Config_Handlers::ComponentPackageReference t (e);
+ referencedPackage (t);
+ }
+
+ else if (n == ACE_TEXT("selectRequirement"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
+ add_selectRequirement (t);
+ }
+
+ else if (n == ACE_TEXT("configProperty"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
+ add_configProperty (t);
+ }
+
+ else if (n == ACE_TEXT("contentLocation"))
+ {
+ ::XMLSchema::string< ACE_TCHAR > t (e);
+ contentLocation (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct ComponentPackageImportTypeInfoInitializer
+ {
+ ComponentPackageImportTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPackageImport));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ ComponentPackageImportTypeInfoInitializer ComponentPackageImportTypeInfoInitializer_;
+
+ struct PackageConfigurationTypeInfoInitializer
+ {
+ PackageConfigurationTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PackageConfiguration));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ PackageConfigurationTypeInfoInitializer PackageConfigurationTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // ComponentPackageImport
+ //
+ //
+
+ void ComponentPackageImport::
+ traverse (Type& o)
+ {
+ pre (o);
+ location (o);
+ post (o);
+ }
+
+ void ComponentPackageImport::
+ traverse (Type const& o)
+ {
+ pre (o);
+ location (o);
+ post (o);
+ }
+
+ void ComponentPackageImport::
+ pre (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ pre (Type const&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageImport::location_iterator b (o.begin_location()), e (o.end_location());
+
+ if (b != e)
+ {
+ location_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) location_next (o);
+ }
+
+ location_post (o);
+ }
+
+ else location_none (o);
+ }
+
+ void ComponentPackageImport::
+ location (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::ComponentPackageImport::location_const_iterator b (o.begin_location()), e (o.end_location());
+
+ if (b != e)
+ {
+ location_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) location_next (o);
+ }
+
+ location_post (o);
+ }
+
+ else location_none (o);
+ }
+
+ void ComponentPackageImport::
+ location_pre (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_pre (Type const&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_next (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_next (Type const&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_post (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_post (Type const&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_none (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_none (Type const&)
+ {
+ }
+
+ void ComponentPackageImport::
+ post (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ post (Type const&)
+ {
+ }
+
+ // PackageConfiguration
+ //
+ //
+
+ void PackageConfiguration::
+ traverse (Type& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.basePackage_p ()) basePackage (o);
+ else basePackage_none (o);
+ if (o.specializedConfig_p ()) specializedConfig (o);
+ else specializedConfig_none (o);
+ if (o.importedPackage_p ()) importedPackage (o);
+ else importedPackage_none (o);
+ if (o.referencedPackage_p ()) referencedPackage (o);
+ else referencedPackage_none (o);
+ selectRequirement (o);
+ configProperty (o);
+ if (o.contentLocation_p ()) contentLocation (o);
+ else contentLocation_none (o);
+ post (o);
+ }
+
+ void PackageConfiguration::
+ traverse (Type const& o)
+ {
+ pre (o);
+ if (o.label_p ()) label (o);
+ else label_none (o);
+ if (o.UUID_p ()) UUID (o);
+ else UUID_none (o);
+ if (o.basePackage_p ()) basePackage (o);
+ else basePackage_none (o);
+ if (o.specializedConfig_p ()) specializedConfig (o);
+ else specializedConfig_none (o);
+ if (o.importedPackage_p ()) importedPackage (o);
+ else importedPackage_none (o);
+ if (o.referencedPackage_p ()) referencedPackage (o);
+ else referencedPackage_none (o);
+ selectRequirement (o);
+ configProperty (o);
+ if (o.contentLocation_p ()) contentLocation (o);
+ else contentLocation_none (o);
+ post (o);
+ }
+
+ void PackageConfiguration::
+ pre (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ pre (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ label (Type& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void PackageConfiguration::
+ label (Type const& o)
+ {
+ dispatch (o.label ());
+ }
+
+ void PackageConfiguration::
+ label_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ label_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ UUID (Type& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void PackageConfiguration::
+ UUID (Type const& o)
+ {
+ dispatch (o.UUID ());
+ }
+
+ void PackageConfiguration::
+ UUID_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ UUID_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ basePackage (Type& o)
+ {
+ dispatch (o.basePackage ());
+ }
+
+ void PackageConfiguration::
+ basePackage (Type const& o)
+ {
+ dispatch (o.basePackage ());
+ }
+
+ void PackageConfiguration::
+ basePackage_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ basePackage_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ specializedConfig (Type& o)
+ {
+ dispatch (o.specializedConfig ());
+ }
+
+ void PackageConfiguration::
+ specializedConfig (Type const& o)
+ {
+ dispatch (o.specializedConfig ());
+ }
+
+ void PackageConfiguration::
+ specializedConfig_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ specializedConfig_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ importedPackage (Type& o)
+ {
+ dispatch (o.importedPackage ());
+ }
+
+ void PackageConfiguration::
+ importedPackage (Type const& o)
+ {
+ dispatch (o.importedPackage ());
+ }
+
+ void PackageConfiguration::
+ importedPackage_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ importedPackage_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ referencedPackage (Type& o)
+ {
+ dispatch (o.referencedPackage ());
+ }
+
+ void PackageConfiguration::
+ referencedPackage (Type const& o)
+ {
+ dispatch (o.referencedPackage ());
+ }
+
+ void PackageConfiguration::
+ referencedPackage_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ referencedPackage_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PackageConfiguration::selectRequirement_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+
+ if (b != e)
+ {
+ selectRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) selectRequirement_next (o);
+ }
+
+ selectRequirement_post (o);
+ }
+
+ else selectRequirement_none (o);
+ }
+
+ void PackageConfiguration::
+ selectRequirement (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PackageConfiguration::selectRequirement_const_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+
+ if (b != e)
+ {
+ selectRequirement_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) selectRequirement_next (o);
+ }
+
+ selectRequirement_post (o);
+ }
+
+ else selectRequirement_none (o);
+ }
+
+ void PackageConfiguration::
+ selectRequirement_pre (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_pre (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_next (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_next (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_post (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_post (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ selectRequirement_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PackageConfiguration::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void PackageConfiguration::
+ configProperty (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::PackageConfiguration::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+
+ if (b != e)
+ {
+ configProperty_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) configProperty_next (o);
+ }
+
+ configProperty_post (o);
+ }
+
+ else configProperty_none (o);
+ }
+
+ void PackageConfiguration::
+ configProperty_pre (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_pre (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_next (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_next (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_post (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_post (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ configProperty_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ contentLocation (Type& o)
+ {
+ dispatch (o.contentLocation ());
+ }
+
+ void PackageConfiguration::
+ contentLocation (Type const& o)
+ {
+ dispatch (o.contentLocation ());
+ }
+
+ void PackageConfiguration::
+ contentLocation_none (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ contentLocation_none (Type const&)
+ {
+ }
+
+ void PackageConfiguration::
+ post (Type&)
+ {
+ }
+
+ void PackageConfiguration::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // ComponentPackageImport
+ //
+ //
+
+ ComponentPackageImport::
+ ComponentPackageImport (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ ComponentPackageImport::
+ ComponentPackageImport ()
+ {
+ }
+
+ void ComponentPackageImport::
+ traverse (Type const& o)
+ {
+ Traversal::ComponentPackageImport::traverse (o);
+ }
+
+ void ComponentPackageImport::
+ location_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("location"), top_ ()));
+ }
+
+ void ComponentPackageImport::
+ location_next (Type const& o)
+ {
+ location_post (o);
+ location_pre (o);
+ }
+
+ void ComponentPackageImport::
+ location_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ // PackageConfiguration
+ //
+ //
+
+ PackageConfiguration::
+ PackageConfiguration (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ PackageConfiguration::
+ PackageConfiguration ()
+ {
+ }
+
+ void PackageConfiguration::
+ traverse (Type const& o)
+ {
+ Traversal::PackageConfiguration::traverse (o);
+ }
+
+ void PackageConfiguration::
+ label (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("label"), top_ ()));
+ Traversal::PackageConfiguration::label (o);
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ UUID (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("UUID"), top_ ()));
+ Traversal::PackageConfiguration::UUID (o);
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ basePackage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("basePackage"), top_ ()));
+ Traversal::PackageConfiguration::basePackage (o);
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ specializedConfig (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("specializedConfig"), top_ ()));
+ Traversal::PackageConfiguration::specializedConfig (o);
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ importedPackage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("importedPackage"), top_ ()));
+ Traversal::PackageConfiguration::importedPackage (o);
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ referencedPackage (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("referencedPackage"), top_ ()));
+ Traversal::PackageConfiguration::referencedPackage (o);
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ selectRequirement_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("selectRequirement"), top_ ()));
+ }
+
+ void PackageConfiguration::
+ selectRequirement_next (Type const& o)
+ {
+ selectRequirement_post (o);
+ selectRequirement_pre (o);
+ }
+
+ void PackageConfiguration::
+ selectRequirement_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ configProperty_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("configProperty"), top_ ()));
+ }
+
+ void PackageConfiguration::
+ configProperty_next (Type const& o)
+ {
+ configProperty_post (o);
+ configProperty_pre (o);
+ }
+
+ void PackageConfiguration::
+ configProperty_post (Type const&)
+ {
+ pop_ ();
+ }
+
+ void PackageConfiguration::
+ contentLocation (Type const& o)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("contentLocation"), top_ ()));
+ Traversal::PackageConfiguration::contentLocation (o);
+ pop_ ();
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/pcd.hpp b/modules/CIAO/DAnCE/Config_Handlers/pcd.hpp
new file mode 100644
index 00000000000..8d8d6828bab
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/pcd.hpp
@@ -0,0 +1,647 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef PCD_HPP
+#define PCD_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class ComponentPackageImport;
+ class PackageConfiguration;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "Basic_Deployment_Data.hpp"
+
+#include "cpd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export ComponentPackageImport : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPackageImport, ACE_Null_Mutex > _ptr;
+
+ // location
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator location_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator location_const_iterator;
+ location_iterator begin_location ();
+ location_iterator end_location ();
+ location_const_iterator begin_location () const;
+ location_const_iterator end_location () const;
+ void add_location ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
+ XSCRT::Type* location_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_location (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > location_;
+
+ public:
+ ComponentPackageImport ();
+
+ ComponentPackageImport (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ ComponentPackageImport (ComponentPackageImport const& s);
+
+ ComponentPackageImport&
+ operator= (ComponentPackageImport const& s);
+
+ private:
+ char regulator__;
+ };
+
+
+ class XSC_XML_Handlers_Export PackageConfiguration : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PackageConfiguration, ACE_Null_Mutex > _ptr;
+
+ // label
+ //
+ public:
+ bool label_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& label () const;
+ void label (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > label_;
+
+ // UUID
+ //
+ public:
+ bool UUID_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& UUID () const;
+ void UUID (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > UUID_;
+
+ // basePackage
+ //
+ public:
+ bool basePackage_p () const;
+ ::CIAO::Config_Handlers::ComponentPackageDescription const& basePackage () const;
+ void basePackage (::CIAO::Config_Handlers::ComponentPackageDescription const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > basePackage_;
+
+ // specializedConfig
+ //
+ public:
+ bool specializedConfig_p () const;
+ ::CIAO::Config_Handlers::PackageConfiguration const& specializedConfig () const;
+ void specializedConfig (::CIAO::Config_Handlers::PackageConfiguration const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > specializedConfig_;
+
+ // importedPackage
+ //
+ public:
+ bool importedPackage_p () const;
+ ::CIAO::Config_Handlers::ComponentPackageImport const& importedPackage () const;
+ void importedPackage (::CIAO::Config_Handlers::ComponentPackageImport const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > importedPackage_;
+
+ // referencedPackage
+ //
+ public:
+ bool referencedPackage_p () const;
+ ::CIAO::Config_Handlers::ComponentPackageReference const& referencedPackage () const;
+ void referencedPackage (::CIAO::Config_Handlers::ComponentPackageReference const& );
+
+ protected:
+ ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > referencedPackage_;
+
+ // selectRequirement
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator selectRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator selectRequirement_const_iterator;
+ selectRequirement_iterator begin_selectRequirement ();
+ selectRequirement_iterator end_selectRequirement ();
+ selectRequirement_const_iterator begin_selectRequirement () const;
+ selectRequirement_const_iterator end_selectRequirement () const;
+ void add_selectRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
+ XSCRT::Type* selectRequirement_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_selectRequirement (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > selectRequirement_;
+
+ // configProperty
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
+ configProperty_iterator begin_configProperty ();
+ configProperty_iterator end_configProperty ();
+ configProperty_const_iterator begin_configProperty () const;
+ configProperty_const_iterator end_configProperty () const;
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
+ XSCRT::Type* configProperty_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_configProperty (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
+
+ // contentLocation
+ //
+ public:
+ bool contentLocation_p () const;
+ ::XMLSchema::string< ACE_TCHAR > const& contentLocation () const;
+ void contentLocation (::XMLSchema::string< ACE_TCHAR > const& );
+
+ protected:
+ ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > contentLocation_;
+
+ public:
+ PackageConfiguration ();
+
+ PackageConfiguration (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ PackageConfiguration (PackageConfiguration const& s);
+
+ PackageConfiguration&
+ operator= (PackageConfiguration const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export ComponentPackageImport : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::ComponentPackageImport >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ location (Type&);
+
+ virtual void
+ location (Type const&);
+
+ virtual void
+ location_pre (Type&);
+
+ virtual void
+ location_pre (Type const&);
+
+ virtual void
+ location_next (Type&);
+
+ virtual void
+ location_next (Type const&);
+
+ virtual void
+ location_post (Type&);
+
+ virtual void
+ location_post (Type const&);
+
+ virtual void
+ location_none (Type&);
+
+ virtual void
+ location_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+
+ struct XSC_XML_Handlers_Export PackageConfiguration : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::PackageConfiguration >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ label (Type&);
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ label_none (Type&);
+
+ virtual void
+ label_none (Type const&);
+
+ virtual void
+ UUID (Type&);
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ UUID_none (Type&);
+
+ virtual void
+ UUID_none (Type const&);
+
+ virtual void
+ basePackage (Type&);
+
+ virtual void
+ basePackage (Type const&);
+
+ virtual void
+ basePackage_none (Type&);
+
+ virtual void
+ basePackage_none (Type const&);
+
+ virtual void
+ specializedConfig (Type&);
+
+ virtual void
+ specializedConfig (Type const&);
+
+ virtual void
+ specializedConfig_none (Type&);
+
+ virtual void
+ specializedConfig_none (Type const&);
+
+ virtual void
+ importedPackage (Type&);
+
+ virtual void
+ importedPackage (Type const&);
+
+ virtual void
+ importedPackage_none (Type&);
+
+ virtual void
+ importedPackage_none (Type const&);
+
+ virtual void
+ referencedPackage (Type&);
+
+ virtual void
+ referencedPackage (Type const&);
+
+ virtual void
+ referencedPackage_none (Type&);
+
+ virtual void
+ referencedPackage_none (Type const&);
+
+ virtual void
+ selectRequirement (Type&);
+
+ virtual void
+ selectRequirement (Type const&);
+
+ virtual void
+ selectRequirement_pre (Type&);
+
+ virtual void
+ selectRequirement_pre (Type const&);
+
+ virtual void
+ selectRequirement_next (Type&);
+
+ virtual void
+ selectRequirement_next (Type const&);
+
+ virtual void
+ selectRequirement_post (Type&);
+
+ virtual void
+ selectRequirement_post (Type const&);
+
+ virtual void
+ selectRequirement_none (Type&);
+
+ virtual void
+ selectRequirement_none (Type const&);
+
+ virtual void
+ configProperty (Type&);
+
+ virtual void
+ configProperty (Type const&);
+
+ virtual void
+ configProperty_pre (Type&);
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type&);
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type&);
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ configProperty_none (Type&);
+
+ virtual void
+ configProperty_none (Type const&);
+
+ virtual void
+ contentLocation (Type&);
+
+ virtual void
+ contentLocation (Type const&);
+
+ virtual void
+ contentLocation_none (Type&);
+
+ virtual void
+ contentLocation_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct ComponentPackageImport : Traversal::ComponentPackageImport,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::ComponentPackageImport Type;
+ ComponentPackageImport (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ location_pre (Type &o)
+ {
+ this->location_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_pre (Type const&);
+
+ virtual void
+ location_next (Type &o)
+ {
+ this->location_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_next (Type const&);
+
+ virtual void
+ location_post (Type &o)
+ {
+ this->location_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ location_post (Type const&);
+
+ protected:
+ ComponentPackageImport ();
+ };
+
+ struct PackageConfiguration : Traversal::PackageConfiguration,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::PackageConfiguration Type;
+ PackageConfiguration (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ label (Type &o)
+ {
+ this->label (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ label (Type const&);
+
+ virtual void
+ UUID (Type &o)
+ {
+ this->UUID (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ UUID (Type const&);
+
+ virtual void
+ basePackage (Type &o)
+ {
+ this->basePackage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ basePackage (Type const&);
+
+ virtual void
+ specializedConfig (Type &o)
+ {
+ this->specializedConfig (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ specializedConfig (Type const&);
+
+ virtual void
+ importedPackage (Type &o)
+ {
+ this->importedPackage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ importedPackage (Type const&);
+
+ virtual void
+ referencedPackage (Type &o)
+ {
+ this->referencedPackage (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ referencedPackage (Type const&);
+
+ virtual void
+ selectRequirement_pre (Type &o)
+ {
+ this->selectRequirement_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ selectRequirement_pre (Type const&);
+
+ virtual void
+ selectRequirement_next (Type &o)
+ {
+ this->selectRequirement_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ selectRequirement_next (Type const&);
+
+ virtual void
+ selectRequirement_post (Type &o)
+ {
+ this->selectRequirement_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ selectRequirement_post (Type const&);
+
+ virtual void
+ configProperty_pre (Type &o)
+ {
+ this->configProperty_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_pre (Type const&);
+
+ virtual void
+ configProperty_next (Type &o)
+ {
+ this->configProperty_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_next (Type const&);
+
+ virtual void
+ configProperty_post (Type &o)
+ {
+ this->configProperty_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ configProperty_post (Type const&);
+
+ virtual void
+ contentLocation (Type &o)
+ {
+ this->contentLocation (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ contentLocation (Type const&);
+
+ protected:
+ PackageConfiguration ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // PCD_HPP
diff --git a/modules/CIAO/DAnCE/Config_Handlers/toplevel.cpp b/modules/CIAO/DAnCE/Config_Handlers/toplevel.cpp
new file mode 100644
index 00000000000..a59893146bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/toplevel.cpp
@@ -0,0 +1,348 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#include "toplevel.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // TopLevelPackageDescription
+ //
+
+ TopLevelPackageDescription::
+ TopLevelPackageDescription ()
+ :
+ ::XSCRT::Type (),
+ regulator__ ()
+ {
+ }
+
+ TopLevelPackageDescription::
+ TopLevelPackageDescription (TopLevelPackageDescription const& s)
+ :
+ ::XSCRT::Type (),
+ package_ (s.package_),
+ regulator__ ()
+ {
+ }
+
+ TopLevelPackageDescription& TopLevelPackageDescription::
+ operator= (TopLevelPackageDescription const& s)
+ {
+ package_ = s.package_;
+
+ return *this;
+ }
+
+
+ // TopLevelPackageDescription
+ //
+ TopLevelPackageDescription::package_iterator TopLevelPackageDescription::
+ begin_package ()
+ {
+ return package_.begin ();
+ }
+
+ TopLevelPackageDescription::package_iterator TopLevelPackageDescription::
+ end_package ()
+ {
+ return package_.end ();
+ }
+
+ TopLevelPackageDescription::package_const_iterator TopLevelPackageDescription::
+ begin_package () const
+ {
+ return package_.begin ();
+ }
+
+ TopLevelPackageDescription::package_const_iterator TopLevelPackageDescription::
+ end_package () const
+ {
+ return package_.end ();
+ }
+
+ void TopLevelPackageDescription::
+ add_package (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > const& e)
+ {
+ package_.push_back (e);
+ }
+
+ size_t TopLevelPackageDescription::
+ count_package(void) const
+ {
+ return package_.size ();
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ // TopLevelPackageDescription
+ //
+
+ TopLevelPackageDescription::
+ TopLevelPackageDescription (::XSCRT::XML::Element< ACE_TCHAR > const& e)
+ :Base (e), regulator__ ()
+ {
+
+ ::XSCRT::Parser< ACE_TCHAR > p (e);
+
+ while (p.more_elements ())
+ {
+ ::XSCRT::XML::Element< ACE_TCHAR > e (p.next_element ());
+ ::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (e.name ()));
+
+ if (n == ACE_TEXT("package"))
+ {
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PackageConfiguration (e));
+ add_package (t);
+ }
+
+ else
+ {
+ }
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/TypeInfo.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace
+ {
+ ::XMLSchema::TypeInfoInitializer < ACE_TCHAR > XMLSchemaTypeInfoInitializer_ (::XSCRT::extended_type_info_map ());
+
+ struct TopLevelPackageDescriptionTypeInfoInitializer
+ {
+ TopLevelPackageDescriptionTypeInfoInitializer ()
+ {
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::TopLevelPackageDescription));
+ ::XSCRT::ExtendedTypeInfo nf (id);
+
+ nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
+ ::XSCRT::extended_type_info_map ().insert (::std::make_pair (id, nf));
+ }
+ };
+
+ TopLevelPackageDescriptionTypeInfoInitializer TopLevelPackageDescriptionTypeInfoInitializer_;
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ // TopLevelPackageDescription
+ //
+ //
+
+ void TopLevelPackageDescription::
+ traverse (Type& o)
+ {
+ pre (o);
+ package (o);
+ post (o);
+ }
+
+ void TopLevelPackageDescription::
+ traverse (Type const& o)
+ {
+ pre (o);
+ package (o);
+ post (o);
+ }
+
+ void TopLevelPackageDescription::
+ pre (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ pre (Type const&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package (Type& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::TopLevelPackageDescription::package_iterator b (o.begin_package()), e (o.end_package());
+
+ if (b != e)
+ {
+ package_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) package_next (o);
+ }
+
+ package_post (o);
+ }
+
+ else package_none (o);
+ }
+
+ void TopLevelPackageDescription::
+ package (Type const& o)
+ {
+ // VC6 anathema strikes again
+ //
+ ::CIAO::Config_Handlers::TopLevelPackageDescription::package_const_iterator b (o.begin_package()), e (o.end_package());
+
+ if (b != e)
+ {
+ package_pre (o);
+ for (; b != e;)
+ {
+ dispatch (*(*b));
+ if (++b != e) package_next (o);
+ }
+
+ package_post (o);
+ }
+
+ else package_none (o);
+ }
+
+ void TopLevelPackageDescription::
+ package_pre (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_pre (Type const&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_next (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_next (Type const&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_post (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_post (Type const&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_none (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ package_none (Type const&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ post (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ post (Type const&)
+ {
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ // TopLevelPackageDescription
+ //
+ //
+
+ TopLevelPackageDescription::
+ TopLevelPackageDescription (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+
+ TopLevelPackageDescription::
+ TopLevelPackageDescription ()
+ {
+ }
+
+ void TopLevelPackageDescription::
+ traverse (Type const& o)
+ {
+ Traversal::TopLevelPackageDescription::traverse (o);
+ }
+
+ void TopLevelPackageDescription::
+ package_pre (Type const&)
+ {
+ push_ (::XSCRT::XML::Element< ACE_TCHAR > (ACE_TEXT ("package"), top_ ()));
+ }
+
+ void TopLevelPackageDescription::
+ package_next (Type const& o)
+ {
+ package_post (o);
+ package_pre (o);
+ }
+
+ void TopLevelPackageDescription::
+ package_post (Type const&)
+ {
+ pop_ ();
+ }
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Config_Handlers/toplevel.hpp b/modules/CIAO/DAnCE/Config_Handlers/toplevel.hpp
new file mode 100644
index 00000000000..e88d2625e26
--- /dev/null
+++ b/modules/CIAO/DAnCE/Config_Handlers/toplevel.hpp
@@ -0,0 +1,220 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
+#ifndef TOPLEVEL_HPP
+#define TOPLEVEL_HPP
+
+#include "XSC_XML_Handlers_Export.h"
+// Forward declarations.
+//
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class TopLevelPackageDescription;
+ }
+}
+
+#include <memory>
+#include <string>
+#include <list>
+#include "XMLSchema/Types.hpp"
+#include "XMLSchema/id_map.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+#include "ace/Singleton.h"
+
+#include "pcd.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ class XSC_XML_Handlers_Export TopLevelPackageDescription : public ::XSCRT::Type
+ {
+ typedef ::XSCRT::Type Base;
+
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < TopLevelPackageDescription, ACE_Null_Mutex > _ptr;
+
+ // package
+ //
+ public:
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > >::iterator package_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > >::const_iterator package_const_iterator;
+ package_iterator begin_package ();
+ package_iterator end_package ();
+ package_const_iterator begin_package () const;
+ package_const_iterator end_package () const;
+ void add_package ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > const& );
+ XSCRT::Type* package_ptr ( std::basic_string<ACE_TCHAR> idref );
+ size_t count_package (void) const;
+
+ protected:
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > > package_;
+
+ public:
+ TopLevelPackageDescription ();
+
+ TopLevelPackageDescription (::XSCRT::XML::Element< ACE_TCHAR > const&);
+ TopLevelPackageDescription (TopLevelPackageDescription const& s);
+
+ TopLevelPackageDescription&
+ operator= (TopLevelPackageDescription const& s);
+
+ private:
+ char regulator__;
+ };
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#include "XMLSchema/Traversal.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Traversal
+ {
+ struct XSC_XML_Handlers_Export TopLevelPackageDescription : ::XMLSchema::Traversal::Traverser< ::CIAO::Config_Handlers::TopLevelPackageDescription >
+ {
+ virtual void
+ traverse (Type&);
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ pre (Type&);
+
+ virtual void
+ pre (Type const&);
+
+ virtual void
+ package (Type&);
+
+ virtual void
+ package (Type const&);
+
+ virtual void
+ package_pre (Type&);
+
+ virtual void
+ package_pre (Type const&);
+
+ virtual void
+ package_next (Type&);
+
+ virtual void
+ package_next (Type const&);
+
+ virtual void
+ package_post (Type&);
+
+ virtual void
+ package_post (Type const&);
+
+ virtual void
+ package_none (Type&);
+
+ virtual void
+ package_none (Type const&);
+
+ virtual void
+ post (Type&);
+
+ virtual void
+ post (Type const&);
+ };
+ }
+ }
+}
+
+#include "XMLSchema/Writer.hpp"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Writer
+ {
+ struct TopLevelPackageDescription : Traversal::TopLevelPackageDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ typedef ::CIAO::Config_Handlers::TopLevelPackageDescription Type;
+ TopLevelPackageDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
+
+ virtual void
+ traverse (Type &o)
+ {
+ this->traverse (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ traverse (Type const&);
+
+ virtual void
+ package_pre (Type &o)
+ {
+ this->package_pre (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ package_pre (Type const&);
+
+ virtual void
+ package_next (Type &o)
+ {
+ this->package_next (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ package_next (Type const&);
+
+ virtual void
+ package_post (Type &o)
+ {
+ this->package_post (const_cast <Type const &> (o));
+ }
+
+ virtual void
+ package_post (Type const&);
+
+ protected:
+ TopLevelPackageDescription ();
+ };
+ }
+ }
+}
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ }
+}
+
+#endif // TOPLEVEL_HPP
diff --git a/modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl b/modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl
new file mode 100644
index 00000000000..d8599aed857
--- /dev/null
+++ b/modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.idl
@@ -0,0 +1,47 @@
+/**
+ * $Id$
+ *
+ * @file DAnCE_Properties.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Codifies properties used to configure the deployment engine.
+ */
+
+module DAnCE
+{
+ // Home Configuration Properties
+ /// Describes the entrypoint for the home executor. Property value is string.
+ const string HOME_FACTORY = "home factory";
+
+ // Component Configuration Properties
+ /// Describes the entrypoint for the component executor. Property value is string.
+ const string COMPONENT_FACTORY = "component factory";
+ /// Indicates that the component instance should be deployed using specified home ID.
+ /// Property value is string.
+ const string EXPLICIT_HOME = "edu.vanderbilt.dre.DAnCE.ExplicitHome";
+
+ const string SERVER_EXECUTABLE = "edu.vanderbilt.dre.DAnCE.ServerExecutable";
+
+ const string IMPL_TYPE = "edu.vanderbilt.dre.DAnCE.ImplementationType";
+
+ // Instance (i.e., Home or Component) Properties
+ /// Indicates that the instance object reference should be registered in the
+ /// Instance naming context using a specified name. Property value is string.
+ const string REGISTER_NAMING = "edu.vanderbilt.dre.DAnCE.RegisterNaming";
+ /// Indicates that the instance object reference should be printed to a specifid
+ /// file. Property value is string.
+ const string INSTANCE_IOR_FILE = "edu.vanderbilt.dre.DAnCE.InstanceIOR";
+ // const string REGISTER_PORT_NAMING = "edu.vanderbilt.dre.DAnCE.RegisterPortNaming";
+
+ // Node Infrastructure Configuration
+ /// Indicates that the NodeManager is running as a standalone entity.
+ const string STANDALONE_NM = "edu.vanderbilt.dre.DAnCE.StandaloneNM";
+ /// Indicates the naming context for domain objects, which includes infrastructure
+ /// and redirection.
+ const string DOMAIN_NC = "edu.vanderbilt.dre.DAnCE.DomainNC";
+ /// Indicates the naming context used for instance objects.
+ const string INSTANCE_NC = "edu.vanderbilt.dre.DAnCE.InstanceNC";
+
+
+};
+
diff --git a/modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.mpc b/modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.mpc
new file mode 100644
index 00000000000..9f7613fb127
--- /dev/null
+++ b/modules/CIAO/DAnCE/DAnCE/DAnCE_Properties.mpc
@@ -0,0 +1,12 @@
+// -*- MPC -*-
+// $Id$
+
+project(DAnCE_Properties_IDL) : ciaolib_with_idl, dance_output {
+ custom_only = 1
+
+ IDL_Files {
+ idlflags += -SS -Sci
+ DAnCE_Properties.idl
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/DAnCE/Deployment_common.h b/modules/CIAO/DAnCE/DAnCE/Deployment_common.h
new file mode 100644
index 00000000000..8dd874bb119
--- /dev/null
+++ b/modules/CIAO/DAnCE/DAnCE/Deployment_common.h
@@ -0,0 +1,35 @@
+// $Id$
+
+/**
+ * @file Deployment_common.h
+ *
+ * This file collects common type definitions used across different
+ * objects of DAnCE toolchain.
+ *
+ * @author Gan Deng <dengg@dre.vanderbilt.edu>
+ */
+
+#ifndef DANCE_COMMON_H
+#define DANCE_COMMON_H
+#include /**/ "ace/pre.h"
+
+#include "ace/config-all.h"
+#include "ace/Hash_Map_Manager_T.h"
+#include "tao/AnyTypeCode/Any.h"
+
+#if !defined ACE_LACKS_PRAGMA_ONCE
+#pragma once
+#endif /* ! ACE_LACKS_PRAGMA_ONCE */
+
+/// A struct which captures the binding information about a component
+namespace DAnCE
+{
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ CORBA::Any,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> PROPERTY_MAP;
+}
+
+#include /**/ "ace/post.h"
+#endif /* DANCE_COMMON_H */
diff --git a/modules/CIAO/DAnCE/DAnCE/Module_Main.h b/modules/CIAO/DAnCE/DAnCE/Module_Main.h
new file mode 100644
index 00000000000..35b4ba4336d
--- /dev/null
+++ b/modules/CIAO/DAnCE/DAnCE/Module_Main.h
@@ -0,0 +1,90 @@
+// $Id$
+/**
+ * @file Module_Main.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Provides a generic main function used by individual modules.
+ */
+
+#ifndef DANCE_MODULE_MAIN_H_
+#define DANCE_MODULE_MAIN_H_
+
+#include "ace/Dynamic_Service.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+
+#ifndef DANCE_MODULE_MAIN_CLASS_NAME
+#error Module_Main.h used without DANCE_MODULE_MAIN_CLASS_NAME defined.
+#endif
+
+//#ifndef DANCE_MODULE_MAIN_INCLUDE_NAME
+//#error Module_Main.h used without DANCE_MODULE_MAIN_INCLUDE_NAME defined.
+//#endif
+
+//#include DANCE_MODULE_MAIN_INCLUDE_NAME
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("Module_main.h - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("Module_Main.h - initializing module instance\n")));
+
+ DANCE_MODULE_MAIN_CLASS_NAME module_instance;
+
+ CORBA::Object_var obj = module_instance.create_object (orb.in (),
+ argc,
+ argv);
+
+#ifndef DANCE_MODULE_MAIN_SKIP_ORB_RUN
+ if (!CORBA::is_nil (obj.in ()))
+ {
+ orb->run ();
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Module_Main.h - Error: No object created.\n")));
+ retval = -1;
+ }
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("Module_Main.h - ORB event loop finished, exiting.\n")));
+#endif
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Module_Main.h");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Module_Main.h - Error: Unknown exception.\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc b/modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc
new file mode 100644
index 00000000000..e56a1d72f40
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc
@@ -0,0 +1,496 @@
+// -*- MPC -*-
+// $Id$
+
+project(Deployment_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami, amh {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_STUB_Export \
+ -Wb,stub_export_include=Deployment_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_SKEL_Export \
+ -Wb,skel_export_include=Deployment_skel_export.h
+ after += DAnCE_Properties_IDL
+
+ IDL_Files {
+ idlflags += -SS -Sci
+ Deployment_Packaging_Data.idl
+ Deployment_PlanError.idl
+ Deployment_Connection.idl
+ Deployment_StopError.idl
+ Deployment_StartError.idl
+ Deployment_DeploymentPlan.idl
+ Deployment_Data.idl
+ Deployment_TargetData.idl
+ Deployment.idl
+ }
+
+ IDL_Files {
+ idlflags += -SS
+ Deployment_Base.idl
+ }
+
+ IDL_Files {
+ idlflags += -Gxhst -Gxhsk
+ Deployment_Application.idl
+ }
+
+ IDL_Files {
+ idlflags += -Ssi
+ Deployment_ResourceCommitmentManager.idl
+ }
+}
+
+project(Deployment_ApplicationManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami, amh {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_APPLICATIONMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_ApplicationManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_APPLICATIONMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_ApplicationManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ idlflags += -GC
+ IDL_Files {
+ Deployment_ApplicationManager.idl
+ }
+}
+
+project(Deployment_TargetManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_TARGETMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_TargetManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_TARGETMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_TargetManager_skel_export.h \
+ -Gxhst -Gxhsk -Ssi
+
+ IDL_Files {
+ Deployment_TargetManager.idl
+ }
+}
+
+project(Deployment_RepositoryManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_REPOSITORYMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_RepositoryManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_REPOSITORYMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_RepositoryManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_RepositoryManager.idl
+ }
+}
+
+project(Deployment_ExecutionManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_EXECUTIONMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_ExecutionManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_EXECUTIONMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_ExecutionManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_ExecutionManager.idl
+ }
+}
+
+project(Deployment_DAM_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_DOMAINAPPLICATIONMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_DomainApplicationManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_DOMAINAPPLICATIONMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_DomainApplicationManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_DomainApplicationManager.idl
+ }
+}
+
+project(Deployment_DomainApplication_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, amh {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_DOMAINAPPLICATION_STUB_Export \
+ -Wb,stub_export_include=Deployment_DomainApplication_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_DOMAINAPPLICATION_SKEL_Export \
+ -Wb,skel_export_include=Deployment_DomainApplication_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_DomainApplication.idl
+ }
+}
+
+project(Deployment_NAM_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_NODEAPPLICATIONMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_NodeApplicationManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_NODEAPPLICATIONMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_NodeApplicationManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_NodeApplicationManager.idl
+ }
+}
+
+project(Deployment_NodeManager_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream, ami {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_NODEMANAGER_STUB_Export \
+ -Wb,stub_export_include=Deployment_NodeManager_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_NODEMANAGER_SKEL_Export \
+ -Wb,skel_export_include=Deployment_NodeManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_NodeManager.idl
+ }
+}
+
+project(Deployment_NodeApplication_IDL) : ciaolib_with_idl, dance_output, valuetype, gen_ostream {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DEPLOYMENT_NODEAPPLICATION_STUB_Export \
+ -Wb,stub_export_include=Deployment_NodeApplication_stub_export.h \
+ -Wb,skel_export_macro=DEPLOYMENT_NODEAPPLICATION_SKEL_Export \
+ -Wb,skel_export_include=Deployment_NodeApplication_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ Deployment_NodeApplication.idl
+ }
+}
+
+// Valuetype library must be linked for this project.
+// Please don't remove.
+project(Deployment_stub) : ciaolib_with_idl, dance_output, valuetype, ifr_client, messaging, dance_lib, dance_logger, gen_ostream, ami, amh {
+ sharedname = DAnCE_Deployment_stub
+ after += Deployment_IDL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ dynamicflags = DEPLOYMENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ Deployment_StopErrorC.cpp
+ Deployment_StartErrorC.cpp
+ Deployment_BaseC.cpp
+ Deployment_ConnectionC.cpp
+ Deployment_DataC.cpp
+ Deployment_DeploymentPlanC.cpp
+ Deployment_TargetDataC.cpp
+ Deployment_ApplicationC.cpp
+ Deployment_Packaging_DataC.cpp
+ Deployment_PlanErrorC.cpp
+ DeploymentC.cpp
+ Deployment_ResourceCommitmentManagerC.cpp
+ }
+}
+
+project(Deployment_AM_stub) : dance_output, dance_deployment_stub, amh {
+ sharedname = DAnCE_ApplicationManager_stub
+ after += Deployment_ApplicationManager_IDL
+ dynamicflags = DEPLOYMENT_APPLICATIONMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_ApplicationManagerC.cpp
+ }
+}
+
+project(Deployment_AM_skel) : dance_output, dance_deployment_skel, dance_applicationmanager_stub, amh {
+ sharedname = DAnCE_ApplicationManager_skel
+ after += Deployment_AM_stub
+ dynamicflags = DEPLOYMENT_APPLICATIONMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_ApplicationManagerS.cpp
+ }
+}
+
+
+project(Deployment_DAM_stub) : dance_output, dance_applicationmanager_stub, amh {
+ sharedname = DAnCE_DomainApplicationManager_stub
+ after += Deployment_DAM_IDL
+ dynamicflags = DEPLOYMENT_DOMAINAPPLICATIONMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_DomainApplicationManagerC.cpp
+ }
+}
+
+project(Deployment_DAM_skel) : dance_output, dance_applicationmanager_skel, dance_domainapplicationmanager_stub, amh {
+ sharedname = DAnCE_DomainApplicationManager_skel
+ after += Deployment_DAM_stub
+ dynamicflags = DEPLOYMENT_DOMAINAPPLICATIONMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_DomainApplicationManagerS.cpp
+ }
+}
+
+project(Deployment_ExecutionManager_stub) : dance_output, dance_deployment_stub, dance_domainapplicationmanager_stub, amh {
+ sharedname = DAnCE_ExecutionManager_stub
+ after += Deployment_ExecutionManager_IDL
+ dynamicflags = DEPLOYMENT_EXECUTIONMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_ExecutionManagerC.cpp
+ }
+}
+
+project(Deployment_ExecutionManager_skel) : dance_output, dance_deployment_skel, dance_executionmanager_stub, amh {
+ sharedname = DAnCE_ExecutionManager_skel
+ after += Deployment_ExecutionManager_stub
+ dynamicflags = DEPLOYMENT_EXECUTIONMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_ExecutionManagerS.cpp
+ }
+}
+
+project(Deployment_DomainApplication_stub) : dance_output, dance_deployment_stub, amh {
+ sharedname = DAnCE_DomainApplication_stub
+ after += Deployment_DomainApplication_IDL
+ dynamicflags = DEPLOYMENT_DOMAINAPPLICATION_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_DomainApplicationC.cpp
+ }
+}
+
+project(Deployment_DomainApplication_skel) : dance_output, dance_deployment_skel, dance_domainapplication_stub, amh {
+ sharedname = DAnCE_DomainApplication_skel
+ after += Deployment_DomainApplication_stub
+ dynamicflags = DEPLOYMENT_DOMAINAPPLICATION_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_DomainApplicationS.cpp
+ }
+}
+
+project(Deployment_NAM_stub) : dance_output, dance_applicationmanager_stub, ami {
+ sharedname = DAnCE_NodeApplicationManager_stub
+ after += Deployment_NAM_IDL
+ dynamicflags = DEPLOYMENT_NODEAPPLICATIONMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_NodeApplicationManagerC.cpp
+ }
+}
+
+project(Deployment_NAM_skel) : dance_output, dance_applicationmanager_skel, dance_nodeapplicationmanager_stub, ami {
+ sharedname = DAnCE_NodeApplicationManager_skel
+ after += Deployment_NAM_stub
+ dynamicflags = DEPLOYMENT_NODEAPPLICATIONMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_NodeApplicationManagerS.cpp
+ }
+}
+
+project(Deployment_NodeManager_stub) : dance_output, dance_deployment_stub, dance_nodeapplicationmanager_stub, dance_targetmanager_stub, ami {
+ sharedname = DAnCE_NodeManager_stub
+ after += Deployment_NodeManager_IDL
+ dynamicflags = DEPLOYMENT_NODEMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_NodeManagerC.cpp
+ }
+}
+
+project(Deployment_NodeManager_skel) : dance_output, dance_deployment_skel, dance_nodemanager_stub, dance_nodeapplicationmanager_skel, ami {
+ sharedname = DAnCE_NodeManager_skel
+ after += Deployment_NodeManager_stub
+ dynamicflags = DEPLOYMENT_NODEMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_NodeManagerS.cpp
+ }
+}
+
+project(Deployment_TargetManager_stub) : dance_output, dance_deployment_stub {
+ sharedname = DAnCE_TargetManager_stub
+ after += Deployment_TargetManager_IDL
+ dynamicflags = DEPLOYMENT_TARGETMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_TargetManagerC.cpp
+ }
+}
+
+project(Deployment_TargetManager_skel) : dance_output, dance_deployment_skel, dance_targetmanager_stub {
+ sharedname = DAnCE_TargetManager_skel
+ after += Deployment_TargetManager_stub
+ dynamicflags = DEPLOYMENT_TARGETMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_TargetManagerS.cpp
+ }
+}
+
+project(Deployment_RepositoryManager_stub) : dance_output, dance_deployment_stub {
+ sharedname = DAnCE_RepositoryManager_stub
+ after += Deployment_RepositoryManager_IDL
+ dynamicflags = DEPLOYMENT_REPOSITORYMANAGER_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_RepositoryManagerC.cpp
+ }
+}
+
+project(Deployment_RepositoryManager_skel) : dance_output, dance_deployment_skel, dance_repositorymanager_stub {
+ sharedname = DAnCE_RepositoryManager_skel
+ after += Deployment_RepositoryManager_stub
+ dynamicflags = DEPLOYMENT_REPOSITORYMANAGER_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_RepositoryManagerS.cpp
+ }
+}
+
+project(Deployment_NodeApplication_stub) : dance_output, dance_deployment_stub {
+ sharedname = DAnCE_NodeApplication_stub
+ after += Deployment_NodeApplication_IDL
+ dynamicflags = DEPLOYMENT_NODEAPPLICATION_STUB_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_NodeApplicationC.cpp
+ }
+}
+
+project(Deployment_NodeApplication_skel) : dance_output, dance_deployment_skel, dance_nodeapplication_stub {
+ sharedname = DAnCE_NodeApplication_skel
+ after += Deployment_NodeApplication_stub
+ dynamicflags = DEPLOYMENT_NODEAPPLICATION_SKEL_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_NodeApplicationS.cpp
+ }
+}
+
+// CIAO_DnC_Client library must be linked for this project.
+// Please don't remove. dance_deployment_stub,
+project(Deployment_skel) : dance_deployment_stub, dance_output, ciaolib_with_idl, portableserver, valuetype, \
+ ifr_client, naming, dance_lib, dance_logger, messaging, gen_ostream, ami, amh {
+ sharedname = DAnCE_Deployment_skel
+ dynamicflags = DEPLOYMENT_SKEL_BUILD_DLL
+ after += Deployment_IDL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_ApplicationS.cpp
+ Deployment_ResourceCommitmentManagerS.cpp
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment.idl b/modules/CIAO/DAnCE/Deployment/Deployment.idl
new file mode 100644
index 00000000000..a2acad632f1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#ifndef DEPLOYMENT_IDL
+#define DEPLOYMENT_IDL
+
+module Deployment {
+ /*
+ * This exception is listed in OMG 07-02-01 but not in 06-04-01 and 06-04-02
+ */
+ exception LastConfiguration {
+ };
+
+ /*
+ * This exception is listed in OMG 07-02-01 and in the text of 06-04-02 but never
+ * used in idl
+ */
+ exception InvalidReference {
+ };
+};
+
+#endif /* DEPLOYMENT_IDL */
+
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_Application.idl b/modules/CIAO/DAnCE/Deployment/Deployment_Application.idl
new file mode 100644
index 00000000000..d0f46188d25
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Application.idl
@@ -0,0 +1,28 @@
+// $Id$
+
+#ifndef DEPLOYMENT_APPLICATION_IDL
+#define DEPLOYMENT_APPLICATION_IDL
+
+#include "DAnCE/Deployment/Deployment_Connection.idl"
+#include "DAnCE/Deployment/Deployment_StartError.idl"
+#include "DAnCE/Deployment/Deployment_StopError.idl"
+
+module Deployment
+{
+ exception InvalidConnection {
+ string name;
+ string reason;
+ };
+
+ interface Application {
+ void finishLaunch (in Connections providedReference, in boolean start)
+ raises (StartError, InvalidConnection);
+
+ void start ()
+ raises (StartError);
+ };
+
+ typedef sequence < Application > Applications;
+};
+
+#endif /* DEPLOYMENT_APPLICATION_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl
new file mode 100644
index 00000000000..ed5eab97c08
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl
@@ -0,0 +1,50 @@
+// $Id$
+// Compliant with OMG 06-04-01 section 15
+
+#ifndef DEPLOYMENT_APPLICATIONMANAGER_IDL
+#define DEPLOYMENT_APPLICATIONMANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment.idl"
+#include "DAnCE/Deployment/Deployment_Application.idl"
+#include "DAnCE/Deployment/Deployment_Connection.idl"
+
+module Deployment {
+
+ exception ResourceNotAvailable {
+ string name;
+ string resourceType;
+ string propertyName;
+ string elementName;
+ string resourceName;
+ };
+
+ exception InvalidNodeExecParameter {
+ string name;
+ string reason;
+ };
+
+ exception InvalidComponentExecParameter {
+ string name;
+ string reason;
+ };
+
+ exception InvalidProperty {
+ string name;
+ string reason;
+ };
+
+ interface ApplicationManager {
+ Application startLaunch (in Properties configProperty,
+ out Connections providedReference)
+ raises (ResourceNotAvailable,
+ StartError,
+ InvalidProperty,
+ InvalidNodeExecParameter,
+ InvalidComponentExecParameter);
+
+ void destroyApplication (in Application app)
+ raises (StopError);
+ };
+};
+
+#endif /* DEPLOYMENT_APPLICATIONMANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_Base.idl b/modules/CIAO/DAnCE/Deployment/Deployment_Base.idl
new file mode 100644
index 00000000000..91ad3722919
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Base.idl
@@ -0,0 +1,41 @@
+//$Id$
+
+#ifndef DEPLOYMENT_BASE_IDL
+#define DEPLOYMENT_BASE_IDL
+
+module Deployment {
+ struct Property {
+ string name;
+ any value;
+ };
+
+ typedef sequence < Property > Properties;
+
+ struct Requirement {
+ string name;
+ string resourceType;
+ Properties property;
+ };
+
+ typedef sequence < Requirement > Requirements;
+
+ enum SatisfierPropertyKind {
+ Quantity,
+ Capacity,
+ Minimum,
+ Maximum,
+ _Attribute,
+ Selection
+ };
+
+ struct SatisfierProperty {
+ string name;
+ SatisfierPropertyKind kind;
+ boolean dynamic;
+ any value;
+ };
+
+ typedef sequence < SatisfierProperty > SatisfierProperties;
+};
+
+#endif /* DEPLOYMENT_BASE_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_Connection.idl b/modules/CIAO/DAnCE/Deployment/Deployment_Connection.idl
new file mode 100644
index 00000000000..a07cd7990a4
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Connection.idl
@@ -0,0 +1,18 @@
+// $Id$
+
+#ifndef DEPLOYMENT_CONNECTION_IDL
+#define DEPLOYMENT_CONNECTION_IDL
+
+#include "DAnCE/Deployment/Deployment_DeploymentPlan.idl"
+
+module Deployment
+{
+ typedef sequence < Object > Endpoints;
+ struct Connection {
+ string name;
+ Endpoints endpoint;
+ };
+
+ typedef sequence < Connection > Connections;
+};
+#endif /* DEPLOYMENT_CONNECTION_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_Data.idl b/modules/CIAO/DAnCE/Deployment/Deployment_Data.idl
new file mode 100644
index 00000000000..ec21e4715f1
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Data.idl
@@ -0,0 +1,41 @@
+// $Id$
+
+#ifndef DEPLOYMENT_DATA_IDL
+#define DEPLOYMENT_DATA_IDL
+
+#include "DAnCE/Deployment/Deployment_DeploymentPlan.idl"
+
+module Deployment {
+ struct ComponentPackageReference {
+ string requiredUUID;
+ string requiredName;
+ ComponentInterfaceDescription requiredType;
+ };
+
+ typedef sequence < ComponentPackageReference > ComponentPackageReferences;
+
+ typedef sequence < ResourceUsageKind > ResourceUsageKinds;
+
+ struct ImplementationRequirement {
+ ResourceUsageKinds resourceUsage;
+ string resourcePort;
+ string componentPort;
+ string name;
+ string resourceType;
+ Properties property;
+ };
+
+ typedef sequence < ImplementationRequirement > ImplementationRequirements;
+
+ struct Capability {
+ string name;
+ ::CORBA::StringSeq resourceType;
+ SatisfierProperties property;
+ };
+
+ typedef sequence < Capability > Capabilities;
+};
+
+#endif /* DEPLOYMENT_DATA_IDL */
+
+
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl b/modules/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl
new file mode 100644
index 00000000000..b594e535400
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl
@@ -0,0 +1,212 @@
+// $Id$
+
+#ifndef DEPLOYMENT_DEPLOYMENTPLAN_IDL
+#define DEPLOYMENT_DEPLOYMENTPLAN_IDL
+
+#include "DAnCE/Deployment/Deployment_Base.idl"
+#include "tao/StringSeq.pidl"
+#include "tao/ULongSeq.pidl"
+#include "tao/Typecode_types.pidl"
+
+module Deployment {
+ enum CCMComponentPortKind {
+ Facet,
+ SimplexReceptacle,
+ MultiplexReceptacle,
+ EventEmitter,
+ EventPublisher,
+ EventConsumer,
+ ExtendedPort, // New from DDS4CCM
+ _MirrorPort // New from DDS4CCM
+ };
+
+ struct ComponentPortDescription {
+ string name;
+ string specificType;
+ ::CORBA::StringSeq supportedType;
+ boolean provider;
+ boolean exclusiveProvider;
+ boolean exclusiveUser;
+ boolean optional;
+ CCMComponentPortKind kind;
+ ::CORBA::StringSeq templateParam; // New from DDS4CCM
+ };
+
+ typedef sequence < ComponentPortDescription > ComponentPortDescriptions;
+
+ struct ComponentPropertyDescription {
+ string name;
+ CORBA::TypeCode type;
+ };
+
+ typedef sequence < ComponentPropertyDescription > ComponentPropertyDescriptions;
+
+ struct ComponentInterfaceDescription {
+ string label;
+ string UUID;
+ string specificType;
+ ::CORBA::StringSeq supportedType;
+ ::CORBA::StringSeq idlFile;
+ Properties configProperty;
+ ComponentPortDescriptions _port;
+ ComponentPropertyDescriptions property;
+ Properties infoProperty;
+ };
+
+ struct MonolithicDeploymentDescription {
+ string name;
+ ::CORBA::StringSeq source;
+ ::CORBA::ULongSeq artifactRef;
+ Properties execParameter;
+ Requirements deployRequirement;
+ };
+
+ typedef sequence < MonolithicDeploymentDescription > MonolithicDeploymentDescriptions;
+
+ enum ResourceUsageKind {
+ None,
+ InstanceUsesResource,
+ ResourceUsesInstance,
+ PortUsesResource,
+ ResourceUsesPort
+ };
+
+ struct InstanceResourceDeploymentDescription {
+ ResourceUsageKind resourceUsage;
+ string requirementName;
+ string resourceName;
+ Properties property;
+ };
+
+ typedef sequence < InstanceResourceDeploymentDescription > InstanceResourceDeploymentDescriptions;
+
+ struct InstanceDeploymentDescription {
+ string name;
+ string node;
+ ::CORBA::StringSeq source;
+ unsigned long implementationRef;
+ Properties configProperty;
+ InstanceResourceDeploymentDescriptions deployedResource;
+ InstanceResourceDeploymentDescriptions deployedSharedResource;
+ };
+
+ typedef sequence < InstanceDeploymentDescription > InstanceDeploymentDescriptions;
+
+ struct ComponentExternalPortEndpoint {
+ string portName;
+ };
+
+ typedef sequence < ComponentExternalPortEndpoint > ComponentExternalPortEndpoints;
+
+ struct PlanSubcomponentPortEndpoint {
+ string portName;
+ boolean provider;
+ CCMComponentPortKind kind;
+ unsigned long instanceRef;
+ };
+
+ typedef sequence < PlanSubcomponentPortEndpoint > PlanSubcomponentPortEndpoints;
+
+ struct ExternalReferenceEndpoint {
+ string location;
+ boolean provider;
+ string portName;
+ ::CORBA::StringSeq supportedType;
+ };
+
+ typedef sequence < ExternalReferenceEndpoint > ExternalReferenceEndpoints;
+
+ struct ConnectionResourceDeploymentDescription {
+ string targetName;
+ string requirementName;
+ string resourceName;
+ Properties property;
+ };
+
+ typedef sequence < ConnectionResourceDeploymentDescription > ConnectionResourceDeploymentDescriptions;
+
+ struct PlanConnectionDescription {
+ string name;
+ ::CORBA::StringSeq source;
+ Requirements deployRequirement;
+ ComponentExternalPortEndpoints externalEndpoint;
+ PlanSubcomponentPortEndpoints internalEndpoint;
+ ExternalReferenceEndpoints externalReference;
+ ConnectionResourceDeploymentDescriptions deployedResource;
+ };
+
+ typedef sequence < PlanConnectionDescription > PlanConnectionDescriptions;
+
+ struct PlanSubcomponentPropertyReference {
+ string propertyName;
+ unsigned long instanceRef;
+ };
+
+ typedef sequence < PlanSubcomponentPropertyReference > PlanSubcomponentPropertyReferences;
+
+ struct PlanPropertyMapping {
+ string name;
+ ::CORBA::StringSeq source;
+ string externalName;
+ PlanSubcomponentPropertyReferences delegatesTo;
+ };
+
+ typedef sequence < PlanPropertyMapping > PlanPropertyMappings;
+
+ struct ImplementationDependency {
+ string requiredType;
+ };
+
+ typedef sequence < ImplementationDependency > ImplementationDependencies;
+
+ struct ResourceDeploymentDescription {
+ string requirementName;
+ string resourceName;
+ Properties property;
+ };
+
+ typedef sequence < ResourceDeploymentDescription > ResourceDeploymentDescriptions;
+
+ struct ArtifactDeploymentDescription {
+ string name;
+ ::CORBA::StringSeq location;
+ string node;
+ ::CORBA::StringSeq source;
+ Properties execParameter;
+ Requirements deployRequirement;
+ ResourceDeploymentDescriptions deployedResource;
+ };
+
+ typedef sequence < ArtifactDeploymentDescription > ArtifactDeploymentDescriptions;
+
+ // OMG 06-04-02 has this without Plan prefix but that results in illegal IDL
+ // because LocalityKind also has DifferentProcess as value
+ enum PlanLocalityKind {
+ PlanSameProcess,
+ PlanDifferentProcess,
+ PlanNoConstraint
+ };
+
+ struct PlanLocality {
+ PlanLocalityKind constraint;
+ ::CORBA::ULongSeq constrainedInstanceRef;
+ };
+
+ typedef sequence < PlanLocality > PlanLocalities;
+
+ struct DeploymentPlan {
+ string label;
+ string UUID;
+ ComponentInterfaceDescription realizes;
+ MonolithicDeploymentDescriptions implementation;
+ InstanceDeploymentDescriptions instance;
+ PlanConnectionDescriptions connection;
+ PlanPropertyMappings externalProperty;
+ ImplementationDependencies dependsOn;
+ ArtifactDeploymentDescriptions artifact;
+ Properties infoProperty;
+ PlanLocalities localityConstraint;
+ };
+};
+
+#endif /* DEPLOYMENT_DATA_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_DomainApplication.idl b/modules/CIAO/DAnCE/Deployment/Deployment_DomainApplication.idl
new file mode 100644
index 00000000000..4d8b1c94ba3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_DomainApplication.idl
@@ -0,0 +1,17 @@
+// $Id$
+
+#ifndef DEPLOYMENT_DOMAINAPPLICATION_IDL
+#define DEPLOYMENT_DOMAINAPPLICATION_IDL
+
+#include "DAnCE/Deployment/Deployment_Application.idl"
+
+module Deployment
+{
+ interface DomainApplication :
+ Application
+ {
+ };
+};
+
+
+#endif //DEPLOYMENT_DOMAINAPPLICATION_IDL
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_DomainApplicationManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_DomainApplicationManager.idl
new file mode 100644
index 00000000000..d8d12e3af40
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_DomainApplicationManager.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef DOMAINAPPLICATIONMANAGER_IDL
+#define DOMAINAPPLICATIONMANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment_DeploymentPlan.idl"
+#include "DAnCE/Deployment/Deployment_ApplicationManager.idl"
+
+module Deployment {
+ interface DomainApplicationManager : ApplicationManager
+ {
+ Applications getApplications ();
+ DeploymentPlan getPlan ();
+ };
+
+ typedef sequence < DomainApplicationManager > DomainApplicationManagers;
+};
+
+#endif /* DOMAINAPPLICATIONMANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_ExecutionManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_ExecutionManager.idl
new file mode 100644
index 00000000000..8a60dbb2ccf
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_ExecutionManager.idl
@@ -0,0 +1,20 @@
+// $Id$
+#ifndef EXECUTIONMANAGER_IDL
+#define EXECUTIONMANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment_DomainApplicationManager.idl"
+#include "DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl"
+#include "DAnCE/Deployment/Deployment_PlanError.idl"
+
+module Deployment {
+ interface ExecutionManager {
+ DomainApplicationManager preparePlan (in DeploymentPlan plan,
+ in ResourceCommitmentManager resourceCommitment)
+ raises (ResourceNotAvailable, PlanError, StartError);
+ DomainApplicationManagers getManagers ();
+ void destroyManager (in DomainApplicationManager manager)
+ raises (StopError);
+ };
+};
+
+#endif /* EXECUTIONMANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_NodeApplication.idl b/modules/CIAO/DAnCE/Deployment/Deployment_NodeApplication.idl
new file mode 100644
index 00000000000..73677e40f4d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_NodeApplication.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#ifndef DEPLOYMENT_NODEAPPLICATION_IDL
+#define DEPLOYMENT_NODEAPPLICATION_IDL
+
+#include "DAnCE/Deployment/Deployment_Application.idl"
+
+module Deployment {
+ interface NodeApplication : Application
+ {
+ };
+};
+#endif /* DEPLOYMENT_NODEAPPLICATION_IDL */
+
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_NodeApplicationManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_NodeApplicationManager.idl
new file mode 100644
index 00000000000..2e7ea458a1d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_NodeApplicationManager.idl
@@ -0,0 +1,14 @@
+// $Id$
+#ifndef NODEAPPLICATIONMANAGER_IDL
+#define NODEAPPLICATIONMANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment_ApplicationManager.idl"
+
+module Deployment {
+ interface NodeApplicationManager :
+ ApplicationManager
+ {
+ };
+};
+
+#endif /* NODEAPPLICATIONMANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_NodeManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_NodeManager.idl
new file mode 100644
index 00000000000..ba488013c00
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_NodeManager.idl
@@ -0,0 +1,34 @@
+// $Id$
+#ifndef DEPLOYMENT_NODEMANAGER_IDL
+#define DEPLOYMENT_NODEMANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment.idl"
+#include "DAnCE/Deployment/Deployment_TargetManager.idl"
+#include "DAnCE/Deployment/Deployment_NodeApplicationManager.idl"
+#include "DAnCE/Deployment/Deployment_PlanError.idl"
+
+module Deployment {
+
+ interface Logger {
+ };
+
+ interface NodeManager {
+ void joinDomain (in Domain theDomain,
+ in TargetManager manager,
+ in Logger log,
+ in long updateInterval);
+
+ void leaveDomain ();
+
+ NodeApplicationManager preparePlan (in DeploymentPlan plan,
+ in ResourceCommitmentManager resourceCommitment)
+ raises (StartError, PlanError);
+
+ void destroyManager (in NodeApplicationManager appManager)
+ raises (StopError);
+
+ Resources getDynamicResources ();
+ };
+};
+
+#endif /* DEPLOYMENT_NODEMANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_Packaging_Data.idl b/modules/CIAO/DAnCE/Deployment/Deployment_Packaging_Data.idl
new file mode 100644
index 00000000000..266bb0a8481
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Packaging_Data.idl
@@ -0,0 +1,201 @@
+// $Id$
+
+#ifndef PACKAGING_DATA_IDL
+#define PACKAGING_DATA_IDL
+
+#include "DAnCE/Deployment/Deployment_Data.idl"
+
+module Deployment {
+
+ struct ComponentPackageDescription;
+
+ typedef sequence < ComponentPackageDescription > ComponentPackageDescriptions;
+
+ struct PackageConfiguration;
+
+ typedef sequence < PackageConfiguration > PackageConfigurations;
+
+ struct ComponentPackageImport {
+ ::CORBA::StringSeq location;
+ };
+
+ typedef sequence < ComponentPackageImport > ComponentPackageImports;
+
+ struct SubcomponentInstantiationDescription {
+ string name;
+ ComponentPackageDescriptions basePackage;
+ PackageConfigurations specializedConfig;
+ Requirements selectRequirement;
+ Properties configProperty;
+ ComponentPackageReferences referencedPackage;
+ ComponentPackageImports importedPackage;
+ };
+
+ typedef sequence < SubcomponentInstantiationDescription > SubcomponentInstantiationDescriptions;
+
+ struct SubcomponentPortEndpoint {
+ string portName;
+ unsigned long instanceRef;
+ };
+
+ typedef sequence < SubcomponentPortEndpoint > SubcomponentPortEndpoints;
+
+ struct AssemblyConnectionDescription {
+ string name;
+ Requirements deployRequirement;
+ ComponentExternalPortEndpoints externalEndpoint;
+ SubcomponentPortEndpoints internalEndpoint;
+ ExternalReferenceEndpoints externalReference;
+ };
+
+ typedef sequence < AssemblyConnectionDescription > AssemblyConnectionDescriptions;
+
+ struct SubcomponentPropertyReference {
+ string propertyName;
+ unsigned long instanceRef;
+ };
+
+ typedef sequence < SubcomponentPropertyReference > SubcomponentPropertyReferences;
+
+ struct AssemblyPropertyMapping {
+ string name;
+ string externalName;
+ SubcomponentPropertyReferences delegatesTo;
+ };
+
+ typedef sequence < AssemblyPropertyMapping > AssemblyPropertyMappings;
+
+ struct NamedImplementationArtifact;
+
+ typedef sequence < NamedImplementationArtifact > NamedImplementationArtifacts;
+
+ struct ImplementationArtifactDescription {
+ string label;
+ string UUID;
+ ::CORBA::StringSeq location;
+ Properties execParameter;
+ Requirements deployRequirement;
+ NamedImplementationArtifacts dependsOn;
+ Properties infoProperty;
+ };
+
+ struct NamedImplementationArtifact {
+ string name;
+ ImplementationArtifactDescription referencedArtifact;
+ };
+
+ struct MonolithicImplementationDescription {
+ Properties nodeExecParameter;
+ NamedImplementationArtifacts primaryArtifact;
+ ImplementationRequirements deployRequirement;
+ Properties componentExecParameter;
+ };
+
+ typedef sequence < MonolithicImplementationDescription > MonolithicImplementationDescriptions;
+
+ enum LocalityKind {
+ SameNodeAnyProcess,
+ SameNodeSameProcess,
+ SameNodeDifferentProcess,
+ DifferentNode,
+ DifferentProcess,
+ NoConstraint
+ };
+
+ struct Locality {
+ LocalityKind constraint;
+ ::CORBA::ULongSeq constrainedInstanceRef;
+ };
+
+ typedef sequence < Locality > Localities;
+
+ struct ComponentAssemblyDescription {
+ SubcomponentInstantiationDescriptions instance;
+ AssemblyConnectionDescriptions connection;
+ AssemblyPropertyMappings externalProperty;
+ Localities localityConstraint;
+ };
+
+ typedef sequence < ComponentAssemblyDescription > ComponentAssemblyDescriptions;
+
+ struct ComponentImplementationDescription {
+ string label;
+ string UUID;
+ ComponentInterfaceDescription implements;
+ ComponentAssemblyDescriptions assemblyImpl;
+ MonolithicImplementationDescriptions monolithicImpl;
+ Properties configProperty;
+ Capabilities capability;
+ ImplementationDependencies dependsOn;
+ Properties infoProperty;
+ };
+
+ // From DDS4CCM
+ struct ConnectorImplementationDescription {
+ string label;
+ string UUID;
+ ComponentInterfaceDescription implements;
+ ComponentAssemblyDescriptions assemblyImpl;
+ MonolithicImplementationDescriptions monolithicImpl;
+ Properties configProperty;
+ Capabilities capability;
+ ImplementationDependencies dependsOn;
+ Properties infoProperty;
+ };
+
+ struct PackagedComponentImplementation {
+ string name;
+ ComponentImplementationDescription referencedImplementation;
+ };
+
+ typedef sequence < PackagedComponentImplementation > PackagedComponentImplementations;
+
+ struct ComponentPackageDescription {
+ string label;
+ string UUID;
+ ComponentInterfaceDescription realizes;
+ Properties configProperty;
+ PackagedComponentImplementations implementation;
+ Properties infoProperty;
+ };
+
+ // From DDS4CCM
+ struct ConnectorPackageDescription {
+ string label;
+ string UUID;
+ ComponentInterfaceDescription realizes;
+ Properties configProperty;
+ ConnectorImplementationDescription implementation;
+ Properties infoProperty;
+ };
+
+ struct PackageConfiguration {
+ string label;
+ string UUID;
+ ComponentPackageDescriptions basePackage;
+ PackageConfigurations specializedConfig;
+ Requirements selectRequirement;
+ Properties configProperty;
+ ComponentPackageReferences referencedPackage;
+ ComponentPackageImports importedPackage;
+ };
+
+ struct ComponentUsageDescription {
+ ComponentPackageDescriptions basePackage;
+ ConnectorPackageDescription baseConnectorPackage; // From DDS4CCM
+ PackageConfigurations specializedConfig;
+ Requirements selectRequirement;
+ Properties configProperty;
+ ComponentPackageReferences referencedPackage;
+ ComponentPackageImports importedPackage;
+ };
+
+ struct RequirementSatisfier {
+ string name;
+ ::CORBA::StringSeq resourceType;
+ SatisfierProperties property;
+ };
+
+};
+
+#endif /* PACKAGING_DATA_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_PlanError.idl b/modules/CIAO/DAnCE/Deployment/Deployment_PlanError.idl
new file mode 100644
index 00000000000..806983d2a87
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_PlanError.idl
@@ -0,0 +1,13 @@
+// $Id$
+
+#ifndef DEPLOYMENT_PLANERROR_IDL
+#define DEPLOYMENT_PLANERROR_IDL
+
+module Deployment {
+ exception PlanError {
+ string name;
+ string reason;
+ };
+};
+
+#endif /* DEPLOYMENT_PLANERROR_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_RepositoryManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_RepositoryManager.idl
new file mode 100644
index 00000000000..6c5f055b484
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_RepositoryManager.idl
@@ -0,0 +1,50 @@
+// $Id$
+#ifndef REPOSITORY_MANAGER_IDL
+#define REPOSITORY_MANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment_Packaging_Data.idl"
+#include "DAnCE/Deployment/Deployment.idl"
+
+module Deployment {
+
+ exception NameExists {
+ };
+
+ exception PackageError {
+ string source;
+ string reason;
+ };
+
+ exception NoSuchName {
+ };
+
+ interface RepositoryManager {
+ void installPackage (in string installationName,
+ in string location,
+ in boolean replace)
+ raises (NameExists, PackageError);
+
+ void createPackage (in string installationName,
+ in PackageConfiguration package,
+ in string baseLocation,
+ in boolean replace)
+ raises (NameExists, PackageError);
+
+ PackageConfiguration findPackageByName (in string name)
+ raises (NoSuchName);
+
+ PackageConfiguration findPackageByUUID (in string UUID)
+ raises (NoSuchName);
+
+ ::CORBA::StringSeq findNamesByType (in string type);
+
+ ::CORBA::StringSeq getAllNames ();
+
+ ::CORBA::StringSeq getAllTypes ();
+
+ void deletePackage (in string installationName)
+ raises (NoSuchName);
+ };
+};
+
+#endif /* REPOSITOR_MANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl
new file mode 100644
index 00000000000..9f534d9a364
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl
@@ -0,0 +1,34 @@
+// $Id$
+//
+#ifndef RESOURCE_COMMITMENT_MANAGER_IDL
+#define RESOURCE_COMMITMENT_MANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment_Base.idl"
+#include "tao/AnyTypeCode/AnySeq.pidl"
+
+module Deployment {
+ struct ResourceAllocation {
+ string elementName;
+ string resourceName;
+ Properties property;
+ };
+
+ typedef sequence < ResourceAllocation > ResourceAllocations;
+
+ exception ResourceCommitmentFailure {
+ string reason;
+ long index;
+ string propertyName;
+ ::CORBA::AnySeq propertyValue;
+ };
+
+ interface ResourceCommitmentManager {
+ void commitResources (in ResourceAllocations resources)
+ raises (ResourceCommitmentFailure);
+ void releaseResources (in ResourceAllocations resources)
+ raises (ResourceCommitmentFailure);
+ };
+};
+
+#endif //RESOURCE_COMMITMENT_MANAGER_IDL
+
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_StartError.idl b/modules/CIAO/DAnCE/Deployment/Deployment_StartError.idl
new file mode 100644
index 00000000000..9cf092f0796
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_StartError.idl
@@ -0,0 +1,14 @@
+// $Id$
+// Compliant with OMG 06-04-01 section 15
+
+#ifndef DEPLOYMENT_STARTERROR_IDL
+#define DEPLOYMENT_STARTERROR_IDL
+
+module Deployment {
+ exception StartError {
+ string name;
+ string reason;
+ };
+};
+#endif /* DEPLOYMENT_STARTERROR_IDL */
+
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_StopError.idl b/modules/CIAO/DAnCE/Deployment/Deployment_StopError.idl
new file mode 100644
index 00000000000..67279680021
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_StopError.idl
@@ -0,0 +1,14 @@
+// $Id$
+// Compliant with OMG 06-04-01 section 15
+
+#ifndef DEPLOYMENT_STOPERROR_IDL
+#define DEPLOYMENT_STOPERROR_IDL
+
+module Deployment {
+ exception StopError {
+ string name;
+ string reason;
+ };
+};
+#endif /* DEPLOYMENT_STOPERROR_IDL */
+
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_TargetData.idl b/modules/CIAO/DAnCE/Deployment/Deployment_TargetData.idl
new file mode 100644
index 00000000000..4a48b613853
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_TargetData.idl
@@ -0,0 +1,68 @@
+//$Id$
+
+#ifndef DEPLOYMENT_TARGETDATA_IDL
+#define DEPLOYMENT_TARGETDATA_IDL
+
+#include "DAnCE/Deployment/Deployment_Base.idl"
+#include "tao/StringSeq.pidl"
+#include "tao/ULongSeq.pidl"
+
+module Deployment {
+ struct Resource {
+ string name;
+ ::CORBA::StringSeq resourceType;
+ SatisfierProperties property;
+ };
+
+ typedef sequence < Resource > Resources;
+
+ struct SharedResource {
+ string name;
+ ::CORBA::StringSeq resourceType;
+ ::CORBA::ULongSeq nodeRef;
+ SatisfierProperties property;
+ };
+
+ typedef sequence < SharedResource > SharedResources;
+
+ struct Node {
+ string name;
+ string label;
+ ::CORBA::ULongSeq sharedResourceRef;
+ ::CORBA::ULongSeq connectionRef;
+ Resources resource;
+ };
+
+ typedef sequence < Node > Nodes;
+
+ struct Interconnect {
+ string name;
+ string label;
+ ::CORBA::ULongSeq connectionRef;
+ ::CORBA::ULongSeq connectRef;
+ Resources resource;
+ };
+
+ typedef sequence < Interconnect > Interconnects;
+
+ struct Bridge {
+ string name;
+ string label;
+ ::CORBA::ULongSeq connectRef;
+ Resources resource;
+ };
+
+ typedef sequence < Bridge > Bridges;
+
+ struct Domain {
+ string UUID;
+ string label;
+ SharedResources sharedResource;
+ Nodes node;
+ Interconnects interconnect;
+ Bridges bridge;
+ Properties infoProperty;
+ };
+};
+
+#endif /* DEPLOYMENT_TARGETDATA_IDL */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_TargetManager.idl b/modules/CIAO/DAnCE/Deployment/Deployment_TargetManager.idl
new file mode 100644
index 00000000000..32de3a9f0e9
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_TargetManager.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+#ifndef TARGETMANAGER_IDL
+#define TARGETMANAGER_IDL
+
+#include "DAnCE/Deployment/Deployment_TargetData.idl"
+#include "DAnCE/Deployment/Deployment_DeploymentPlan.idl"
+#include "DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl"
+
+module Deployment {
+ enum DomainUpdateKind {
+ Add,
+ Delete,
+ UpdateAll,
+ UpdateDynamic
+ };
+
+ interface TargetManager {
+ Domain getAllResources ();
+
+ Domain getAvailableResources ();
+
+ ResourceCommitmentManager createResourceCommitment (in ResourceAllocations resources)
+ raises (ResourceCommitmentFailure);
+
+ void destroyResourceCommitment (in ResourceCommitmentManager manager);
+
+ void updateDomain ( in ::CORBA::StringSeq elements,
+ in Domain domainSubset,
+ in DomainUpdateKind updateKind);
+ };
+};
+
+#endif /* TARGETMANAGER_IDL */
diff --git a/modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc b/modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc
new file mode 100644
index 00000000000..5decf2fe05f
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc
@@ -0,0 +1,15 @@
+// -*- MPC -*-
+// $Id$
+
+project: dance_lib, dance_output, dance_domainapplication_skel, \
+ dance_nodeapplicationmanager_stub, \
+ dance_nodeapplicationmanager_skel, \
+ dance_tools, dance_logger {
+ sharedname = DAnCE_DomainApplication
+ dynamicflags = DOMAIN_APPLICATION_BUILD_DLL
+
+ Source_Files {
+ Domain_Application_Impl.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Export.h b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Export.h
new file mode 100644
index 00000000000..fe9b0133ebb
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl Domain_Application
+// ------------------------------
+#ifndef DOMAIN_APPLICATION_EXPORT_H
+#define DOMAIN_APPLICATION_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DOMAIN_APPLICATION_HAS_DLL)
+# define DOMAIN_APPLICATION_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DOMAIN_APPLICATION_HAS_DLL */
+
+#if !defined (DOMAIN_APPLICATION_HAS_DLL)
+# define DOMAIN_APPLICATION_HAS_DLL 1
+#endif /* ! DOMAIN_APPLICATION_HAS_DLL */
+
+#if defined (DOMAIN_APPLICATION_HAS_DLL) && (DOMAIN_APPLICATION_HAS_DLL == 1)
+# if defined (DOMAIN_APPLICATION_BUILD_DLL)
+# define Domain_Application_Export ACE_Proper_Export_Flag
+# define DOMAIN_APPLICATION_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DOMAIN_APPLICATION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DOMAIN_APPLICATION_BUILD_DLL */
+# define Domain_Application_Export ACE_Proper_Import_Flag
+# define DOMAIN_APPLICATION_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DOMAIN_APPLICATION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DOMAIN_APPLICATION_BUILD_DLL */
+#else /* DOMAIN_APPLICATION_HAS_DLL == 1 */
+# define Domain_Application_Export
+# define DOMAIN_APPLICATION_SINGLETON_DECLARATION(T)
+# define DOMAIN_APPLICATION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DOMAIN_APPLICATION_HAS_DLL == 1 */
+
+// Set DOMAIN_APPLICATION_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DOMAIN_APPLICATION_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DOMAIN_APPLICATION_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DOMAIN_APPLICATION_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DOMAIN_APPLICATION_NTRACE */
+
+#if (DOMAIN_APPLICATION_NTRACE == 1)
+# define DOMAIN_APPLICATION_TRACE(X)
+#else /* (DOMAIN_APPLICATION_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DOMAIN_APPLICATION_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DOMAIN_APPLICATION_NTRACE == 1) */
+
+#endif /* DOMAIN_APPLICATION_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp
new file mode 100644
index 00000000000..1613d1ea36b
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp
@@ -0,0 +1,828 @@
+// $Id$
+
+#include "Domain_Application_Impl.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+ DomainApplication_Impl::DomainApplication_Impl (
+ const char* plan_uuid,
+ PortableServer::POA_ptr poa,
+ TNam2Nm & nams,
+ TNm2Id& node_ids)
+ : poa_ (PortableServer::POA::_duplicate (poa)),
+ planUUID_ (plan_uuid),
+ nams_ (nams),
+ node_ids_ (node_ids)
+ {
+ DANCE_TRACE("DomainApplication_Impl::DomainApplication_Impl");
+ }
+
+ DomainApplication_Impl::~DomainApplication_Impl()
+ {
+ DANCE_TRACE ("DomainApplication_Impl::~DomainApplication_Impl()");
+
+ this->node_applications_.unbind_all();
+ }
+
+ void
+ DomainApplication_Impl::finishLaunch (::Deployment::AMH_ApplicationResponseHandler_ptr _tao_rh,
+ const ::Deployment::Connections & connections,
+ CORBA::Boolean start)
+ {
+ DANCE_TRACE ("DomainApplication_Impl::finishLaunch");
+
+ try
+ {
+ DANCE_DEBUG (9, (LM_DEBUG, DLINFO ACE_TEXT("DomainApplication_impl::finishLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : %u applications to finish launching\n"),
+ this->planUUID_.c_str (),
+ this,
+ this->node_applications_.current_size ()));
+
+ // create completion counter
+ DA_NA_ReplyHandlerImpl::Counter* _cp = 0;
+ ACE_NEW_THROW_EX (_cp,
+ DA_NA_ReplyHandlerImpl::Counter (node_applications_.current_size (),
+ this,
+ _tao_rh),
+ CORBA::NO_MEMORY ());
+ DA_NA_ReplyHandlerImpl::Counter_AutoPtr _counter_ptr (_cp);
+
+ for (TApp2Mgr::iterator iter = this->node_applications_.begin();
+ iter != this->node_applications_.end();
+ ++iter)
+ {
+ ACE_CString node_id;
+ this->app_node_ids_.find ((*iter).ext_id_, node_id);
+ try
+ {
+ // create and activate reply handler
+ DA_NA_ReplyHandlerImpl* da_na_rh_servant = 0;
+ ACE_NEW_THROW_EX (da_na_rh_servant,
+ DA_NA_ReplyHandlerImpl (this,
+ node_id.c_str (),
+ _counter_ptr),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (da_na_rh_servant);
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+
+ ::Deployment::AMI_ApplicationHandler_var da_na_handler =
+ ::Deployment::AMI_ApplicationHandler::_narrow (ref.in ());
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : ")
+ ACE_TEXT("calling finishLaunch on a node application\n"),
+ this->planUUID_.c_str (),
+ this,
+ node_id.c_str ()));
+
+ (*iter).ext_id_->sendc_finishLaunch (da_na_handler.in (),
+ connections,
+ start);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::finishLaunch - ")
+ ACE_TEXT("finishLaunch has been called on a node application\n")));
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::finishLaunch - ")
+ ACE_TEXT("DomainApplication[%@] caught a CORBA exception handling node %C : %C\n"),
+ this,
+ node_id.c_str (),
+ ex._info ().c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::finishLaunch - ")
+ ACE_TEXT("DomainApplication[%@] caught a unknown exception handling node %C\n"),
+ this,
+ node_id.c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ }
+ }
+ catch (CORBA::Exception& ex)
+ {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_ApplicationExceptionHolder amh_exholder (local_ex);
+ _tao_rh->finishLaunch_excep (&amh_exholder);
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Propagating StartError for unknown exception caught here\n")));
+ CORBA::Exception* start_ex = new Deployment::StartError();
+ ::Deployment::AMH_ApplicationExceptionHolder amh_exholder (start_ex);
+ _tao_rh->finishLaunch_excep (&amh_exholder);
+ }
+ }
+
+ void
+ DomainApplication_Impl::start (::Deployment::AMH_ApplicationResponseHandler_ptr _tao_rh)
+ {
+ DANCE_TRACE ("DomainApplication_Impl::start");
+ try
+ {
+ DANCE_DEBUG (9, (LM_DEBUG, DLINFO ACE_TEXT("DomainApplication_impl::start - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : %u applications to start\n"),
+ this->planUUID_.c_str (),
+ this,
+ this->node_applications_.current_size ()));
+
+ // create completion counter
+ DA_NA_ReplyHandlerImpl::Counter* _cp = 0;
+ ACE_NEW_THROW_EX (_cp,
+ DA_NA_ReplyHandlerImpl::Counter (node_applications_.current_size (),
+ this,
+ _tao_rh),
+ CORBA::NO_MEMORY ());
+ DA_NA_ReplyHandlerImpl::Counter_AutoPtr _counter_ptr (_cp);
+
+ for (TApp2Mgr::iterator iter = this->node_applications_.begin();
+ iter != this->node_applications_.end();
+ ++iter)
+ {
+ ACE_CString node_id;
+ this->app_node_ids_.find ((*iter).ext_id_, node_id);
+
+ try
+ {
+ // create and activate reply handler
+ DA_NA_ReplyHandlerImpl* da_na_rh_servant = 0;
+ ACE_NEW_THROW_EX (da_na_rh_servant,
+ DAnCE::DA_NA_ReplyHandlerImpl (this,
+ node_id.c_str (),
+ _counter_ptr),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (da_na_rh_servant);
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+
+ ::Deployment::AMI_ApplicationHandler_var da_na_handler =
+ ::Deployment::AMI_ApplicationHandler::_narrow (ref.in ());
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::start - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : ")
+ ACE_TEXT("calling start on a node application\n"),
+ this->planUUID_.c_str (),
+ this,
+ node_id.c_str ()));
+
+ (*iter).ext_id_->sendc_start (da_na_handler.in ());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::start - ")
+ ACE_TEXT("start has been called on an application\n")));
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::start - ")
+ ACE_TEXT("DomainApplication[%@] caught a CORBA exception handling node %C : %C\n"),
+ this,
+ node_id.c_str (),
+ ex._info ().c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::start - ")
+ ACE_TEXT("DomainApplication[%@] caught a unknown exception handling node %C\n"),
+ this,
+ node_id.c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ }
+ }
+ catch (CORBA::Exception& ex)
+ {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_ApplicationExceptionHolder amh_exholder (local_ex);
+ _tao_rh->start_excep (&amh_exholder);
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::start - ")
+ ACE_TEXT("Propagating StartError for unknown exception caught here\n")));
+ CORBA::Exception* start_ex = new Deployment::StartError();
+ ::Deployment::AMH_ApplicationExceptionHolder amh_exholder (start_ex);
+ _tao_rh->start_excep (&amh_exholder);
+ }
+ }
+
+ void
+ DomainApplication_Impl::startLaunch (
+ const Deployment::Properties & configProperty,
+ DA_CompletionHandler* completion_handler)
+ {
+ DANCE_TRACE ("DomainApplication_Impl::startLaunch");
+
+ DA_CompletionHandler_AutoPtr _ch_ptr (completion_handler); // manage handler
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : %u nodes to launch\n"),
+ this->planUUID_.c_str (),
+ this,
+ nams_.current_size ()));
+
+ // create completion counter
+ DA_NAM_ReplyHandlerImpl::Counter* _cp = 0;
+ ACE_NEW_THROW_EX (_cp,
+ DA_NAM_ReplyHandlerImpl::Counter (nams_.current_size (),
+ this,
+ _ch_ptr),
+ CORBA::NO_MEMORY ());
+ DA_NAM_ReplyHandlerImpl::Counter_AutoPtr _counter_ptr (_cp);
+
+ for (TNam2Nm::iterator iter = this->nams_.begin();
+ iter != this->nams_.end();
+ ++iter)
+ {
+ ACE_CString node_id;
+ this->node_ids_.find ((*iter).int_id_, node_id);
+
+ try
+ {
+ // create and activate reply handler
+ DA_NAM_ReplyHandlerImpl* da_nam_rh_servant = 0;
+ ACE_NEW_THROW_EX (da_nam_rh_servant,
+ DA_NAM_ReplyHandlerImpl (this,
+ (*iter).ext_id_,
+ node_id.c_str (),
+ _counter_ptr),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (da_nam_rh_servant);
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+
+ ::Deployment::AMI_NodeApplicationManagerHandler_var da_nam_handler =
+ ::Deployment::AMI_NodeApplicationManagerHandler::_narrow (ref.in ());
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : ")
+ ACE_TEXT("calling startLaunch on node application manager for node %C\n"),
+ this->planUUID_.c_str (),
+ this,
+ node_id.c_str ()));
+
+ (*iter).ext_id_->sendc_startLaunch (da_nam_handler.in (),
+ configProperty);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("startLaunch has been called on an application\n")));
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("DomainApplication[%@] caught a CORBA exception handling node %C : %C\n"),
+ this,
+ node_id.c_str (),
+ ex._info ().c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("DomainApplication[%@] caught a unknown exception handling node %C\n"),
+ this,
+ node_id.c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ }
+ }
+
+ void
+ DomainApplication_Impl::destroyApplication (
+ const DA_CompletionHandler_AutoPtr& _ch_ptr)
+ {
+ DANCE_TRACE ("DomainApplication_Impl::destroyApplication");
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::destroyApplication - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : %u node applications to destroy\n"),
+ this->planUUID_.c_str (),
+ this,
+ this->node_applications_.current_size ()));
+
+ // create completion counter
+ DA_NAM_ReplyHandlerImpl::Counter* _cp = 0;
+ ACE_NEW_THROW_EX (_cp,
+ DA_NAM_ReplyHandlerImpl::Counter (this->node_applications_.current_size (),
+ this,
+ _ch_ptr),
+ CORBA::NO_MEMORY ());
+ DA_NAM_ReplyHandlerImpl::Counter_AutoPtr _counter_ptr (_cp);
+
+ for (TApp2Mgr::iterator iter = this->node_applications_.begin();
+ iter != this->node_applications_.end();
+ ++iter)
+ {
+ ACE_CString node_id;
+ this->app_node_ids_.find ((*iter).ext_id_, node_id);
+
+ try
+ {
+ // create and activate reply handler
+ DA_NAM_ReplyHandlerImpl* da_nam_rh_servant = 0;
+ ACE_NEW_THROW_EX (da_nam_rh_servant,
+ DAnCE::DA_NAM_ReplyHandlerImpl (this,
+ (*iter).int_id_,
+ node_id.c_str (),
+ _counter_ptr),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (da_nam_rh_servant);
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+
+ ::Deployment::AMI_NodeApplicationManagerHandler_var da_nam_handler =
+ ::Deployment::AMI_NodeApplicationManagerHandler::_narrow (ref.in ());
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::destroyApplication - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : ")
+ ACE_TEXT("calling destroyApplication on node application manager for node %C\n"),
+ this->planUUID_.c_str (),
+ this,
+ node_id.c_str ()));
+
+ (*iter).int_id_->sendc_destroyApplication (da_nam_handler.in (),
+ (*iter).ext_id_.in());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::destroyApplication - ")
+ ACE_TEXT("destroyApplication has been called on node application manager\n")));
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::destroyApplication - ")
+ ACE_TEXT("DomainApplication[%@] caught a CORBA exception handling node %C : %C\n"),
+ this,
+ node_id.c_str (),
+ ex._info ().c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::destroyApplication - ")
+ ACE_TEXT("DomainApplication[%@] caught a unknown exception handling node %C\n"),
+ this,
+ node_id.c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::destroyApplication - finished\n")));
+ }
+
+ void
+ DomainApplication_Impl::getConnections (Deployment::Connections& conn)
+ {
+ conn = this->connections_;
+ }
+
+ const char*
+ DomainApplication_Impl::getPlanUUID (void)
+ {
+ return this->planUUID_.c_str ();
+ }
+
+ DA_NAM_ReplyHandlerImpl::Counter::Counter (
+ unsigned int exec_count,
+ DomainApplication_Impl* da_servant,
+ const DA_CompletionHandler_AutoPtr& dam_completion_handler)
+ : Completion_Counter_Base<ACE_Null_Mutex> (exec_count, 0),
+ da_servant_ (DomainApplication_Impl_var::_duplicate (da_servant)),
+ dam_ch_ptr_ (dam_completion_handler)
+ {
+ }
+
+ void
+ DA_NAM_ReplyHandlerImpl::Counter::on_all_completed ()
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::Counter::on_all_completed - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] successfully finished all nodes\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in ()));
+
+ this->dam_ch_ptr_->handle_completion (da_servant_.in ());
+ }
+
+ void
+ DA_NAM_ReplyHandlerImpl::Counter::on_all_completed_with_failure ()
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::Counter::on_all_completed_with_failure - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : %u errors from nodemanagers\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->fail_count ()));
+
+ this->dam_ch_ptr_->handle_exception (new Deployment::StartError());
+ }
+
+ DA_NAM_ReplyHandlerImpl::DA_NAM_ReplyHandlerImpl (
+ DomainApplication_Impl* da_servant,
+ ::Deployment::NodeApplicationManager_ptr nam,
+ const char* node_id,
+ const Counter_AutoPtr& counter)
+ : da_servant_ (DomainApplication_Impl_var::_duplicate (da_servant)),
+ node_id_ (node_id),
+ nam_ (::Deployment::NodeApplicationManager::_duplicate (nam)),
+ counter_ (counter)
+ {
+ }
+
+ void
+ DA_NAM_ReplyHandlerImpl::startLaunch (
+ ::Deployment::Application_ptr na,
+ const ::Deployment::Connections & conn)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch called.\n")));
+
+ if (CORBA::is_nil (na))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch -")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C startLaunch returned nil object reference.\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+
+ this->counter_->increment_fail_count ();
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C startLaunch succeeded, ")
+ ACE_TEXT("received %u connections\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->node_id_.c_str (),
+ conn.length ()));
+
+ this->da_servant_->node_applications_.bind (
+ ::Deployment::Application::_duplicate (na),
+ ::Deployment::NodeApplicationManager::_duplicate (this->nam_.in ()));
+ this->da_servant_->app_node_ids_.bind (
+ ::Deployment::Application::_duplicate (na),
+ this->node_id_);
+
+ CORBA::ULong const before = this->da_servant_->connections_.length();
+ this->da_servant_->connections_.length (before + conn.length());
+ for (CORBA::ULong i = 0; i < conn.length(); ++i)
+ {
+ this->da_servant_->connections_[before+i] = conn[i];
+ }
+ }
+
+ // mark off one node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+ void
+ DA_NAM_ReplyHandlerImpl::startLaunch_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch_excep called")));
+
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (Deployment::StartError &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : StartError exception caught.\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught a CORBA exception: %C\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->node_id_.c_str (),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::startLaunch_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught unknown exception.\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+
+ // add failure
+ this->counter_->increment_fail_count ();
+
+ // mark off node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+
+ void
+ DA_NAM_ReplyHandlerImpl::destroyApplication (void)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NAM_ReplyHandlerImpl::destroyApplication called.\n")));
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::destroyApplication - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Node application destroy succeeded\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+
+ // mark off one application
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+ void
+ DA_NAM_ReplyHandlerImpl::destroyApplication_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NAM_ReplyHandlerImpl::destroyApplication_excep called\n")));
+
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (Deployment::StopError &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::destroyApplication_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : StopError exception caught.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::destroyApplication_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught a CORBA exception: %C\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str (),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NAM_ReplyHandlerImpl::destroyApplication_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught unknown exception.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+
+ // add failure
+ this->counter_->increment_fail_count ();
+
+ // mark off application
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+
+ DA_NA_ReplyHandlerImpl::Counter::Counter (
+ unsigned int exec_count,
+ DomainApplication_Impl* da_servant,
+ ::Deployment::AMH_ApplicationResponseHandler_ptr _tao_rh)
+ : Completion_Counter_Base<ACE_Null_Mutex> (exec_count, 0),
+ da_servant_ (DomainApplication_Impl_var::_duplicate (da_servant)),
+ da_rh_ (::Deployment::AMH_ApplicationResponseHandler::_duplicate (_tao_rh))
+ {
+ }
+
+ void
+ DA_NA_ReplyHandlerImpl::Counter::on_all_completed ()
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::finishLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : Successfully finished all nodes\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in ()));
+
+ this->da_rh_->finishLaunch ();
+ }
+
+ void
+ DA_NA_ReplyHandlerImpl::Counter::on_all_completed_with_failure ()
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::Counter::on_all_completed_with_failure - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] : %u errors from node applications\n"),
+ this->da_servant_->getPlanUUID (),
+ this->da_servant_.in (),
+ this->fail_count ()));
+
+ CORBA::Exception* start_ex = new Deployment::StartError();
+ ::Deployment::AMH_ApplicationExceptionHolder amh_exholder (start_ex);
+ this->da_rh_->finishLaunch_excep (&amh_exholder);
+ }
+
+ DA_NA_ReplyHandlerImpl::DA_NA_ReplyHandlerImpl (
+ DomainApplication_Impl* da_servant,
+ const char* node_id,
+ const Counter_AutoPtr& counter)
+ : da_servant_ (DomainApplication_Impl_var::_duplicate (da_servant)),
+ node_id_ (node_id),
+ counter_ (counter)
+ {
+ }
+
+ void DA_NA_ReplyHandlerImpl::finishLaunch ()
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NA_ReplyHandlerImpl::finishLaunch - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+
+ // mark off one node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+
+ void DA_NA_ReplyHandlerImpl::finishLaunch_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NA_ReplyHandlerImpl::finishLaunch_excep called")));
+
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (Deployment::StartError &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::finishLaunch_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : StartError exception caught.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::finishLaunch_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught a CORBA exception: %C\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str (),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::finishLaunch_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught unknown exception.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+
+ // add failure
+ this->counter_->increment_fail_count ();
+
+ // mark off node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+
+ void DA_NA_ReplyHandlerImpl::start (void)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NA_ReplyHandlerImpl::start - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+
+ // mark off one node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+
+ void DA_NA_ReplyHandlerImpl::start_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DA_NA_ReplyHandlerImpl::start_excep called")));
+
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (Deployment::StartError &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::start_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : StartError exception caught.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::start_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught a CORBA exception: %C\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str (),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DA_NA_ReplyHandlerImpl::start_excep - ")
+ ACE_TEXT("Plan %C DomainApplication[%@] node %C : Caught unknown exception.\n"),
+ this->da_servant_->planUUID_.c_str (),
+ this->da_servant_.in (),
+ this->node_id_.c_str ()));
+ }
+
+ // add failure
+ this->counter_->increment_fail_count ();
+
+ // mark off node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->da_servant_->poa_->servant_to_id (this);
+ this->da_servant_->poa_->deactivate_object (oid.in ());
+ }
+
+} // DAnCE
+
diff --git a/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.h b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.h
new file mode 100644
index 00000000000..98cee9cf483
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.h
@@ -0,0 +1,203 @@
+// $Id$
+/**========================================================
+ *
+ * @file Domain_Application_Impl.h
+ *
+ * @brief This file contains the implementation of
+ * the DomainApplication interface.
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ *========================================================*/
+
+#ifndef DOMAIN_APPLICATION_H
+#define DOMAIN_APPLICATION_H
+#include /**/ "ace/pre.h"
+
+#include "Domain_Application_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Deployment/Deployment_DomainApplicationS.h"
+#include "Deployment/Deployment_NodeApplicationManagerC.h"
+#include "Deployment/Deployment_NodeApplicationManagerS.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+#include "Completion/CompletionHandler_T.h"
+#include "Completion/Completion_Counter_Base.h"
+#include "ace/Map_Manager.h"
+#include "ace/Refcounted_Auto_Ptr.h"
+
+namespace DAnCE
+ {
+ class DomainApplication_Impl;
+
+ typedef CompletionHandler<DomainApplication_Impl> DA_CompletionHandler;
+
+ typedef ACE_Refcounted_Auto_Ptr<DA_CompletionHandler, ACE_Null_Mutex> DA_CompletionHandler_AutoPtr;
+
+ typedef PortableServer::Servant_var<DomainApplication_Impl> DomainApplication_Impl_var;
+
+ class DA_NAM_ReplyHandlerImpl;
+ class DA_NA_ReplyHandlerImpl;
+
+ /**
+ * @class DomainApplication_Impl
+ *
+ * @brief This class implements the DomainApplication interface.
+ **/
+ class Domain_Application_Export DomainApplication_Impl
+ : public virtual POA_Deployment::AMH_DomainApplication
+ {
+ public:
+ typedef ACE_Map_Manager < ::Deployment::NodeApplicationManager_var,
+ ::Deployment::NodeManager_var,
+ ACE_Null_Mutex > TNam2Nm;
+ typedef ACE_Map_Manager<
+ ::Deployment::NodeManager_var,
+ ACE_CString,
+ ACE_Null_Mutex> TNm2Id;
+ typedef ACE_Map_Manager < ::Deployment::Application_var,
+ ::Deployment::NodeApplicationManager_var,
+ ACE_Null_Mutex > TApp2Mgr;
+ typedef ACE_Map_Manager < ::Deployment::Application_var,
+ ACE_CString,
+ ACE_Null_Mutex > TApp2Id;
+
+ DomainApplication_Impl (const char* plan_uuid,
+ PortableServer::POA_ptr poa,
+ TNam2Nm& nams,
+ TNm2Id& node_ids);
+
+ virtual ~DomainApplication_Impl();
+
+ void startLaunch (const ::Deployment::Properties & configProperty,
+ DA_CompletionHandler* dam_handler);
+
+ void destroyApplication (const DA_CompletionHandler_AutoPtr& _ch_ptr);
+
+ void getConnections (::Deployment::Connections& conn);
+
+ const char* getPlanUUID (void);
+
+ /**
+ * The second step in launching an application in the
+ * domain-level. If the start parameter is true, the application
+ * is started as well. Raises the StartError exception if
+ * launching or starting the application fails.
+ */
+ virtual void
+ finishLaunch (::Deployment::AMH_ApplicationResponseHandler_ptr _tao_rh,
+ const ::Deployment::Connections & connections,
+ CORBA::Boolean start);
+ /**
+ * Starts the application. Raises the StartError exception if
+ * starting the application fails.
+ */
+ virtual void start (::Deployment::AMH_ApplicationResponseHandler_ptr _tao_rh);
+
+ private:
+ friend class DA_NAM_ReplyHandlerImpl;
+ friend class DA_NA_ReplyHandlerImpl;
+
+ PortableServer::POA_var poa_;
+ ACE_CString planUUID_;
+ TApp2Mgr node_applications_;
+ TApp2Id app_node_ids_;
+ ::Deployment::Connections connections_;
+ TNam2Nm & nams_;
+ TNm2Id & node_ids_;
+ };
+
+ class DA_NAM_ReplyHandlerImpl
+ : public POA_Deployment::AMI_NodeApplicationManagerHandler
+ {
+ public:
+ class Counter
+ : public Completion_Counter_Base<ACE_Null_Mutex>
+ {
+ public:
+ Counter (unsigned int exec_count,
+ DomainApplication_Impl* da_servant,
+ const DA_CompletionHandler_AutoPtr& dam_completion_handler);
+
+ protected:
+ virtual void on_all_completed ();
+ virtual void on_all_completed_with_failure ();
+
+ private:
+ DomainApplication_Impl_var da_servant_;
+ DA_CompletionHandler_AutoPtr dam_ch_ptr_;
+ };
+
+ typedef ACE_Refcounted_Auto_Ptr<Counter, ACE_Null_Mutex> Counter_AutoPtr;
+
+ DA_NAM_ReplyHandlerImpl (DomainApplication_Impl* da_servant,
+ ::Deployment::NodeApplicationManager_ptr nam,
+ const char* node_id,
+ const Counter_AutoPtr& counter);
+
+ virtual void startLaunch (
+ ::Deployment::Application_ptr ami_return_val,
+ const ::Deployment::Connections & providedReference);
+ virtual void startLaunch_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ virtual void destroyApplication (void);
+ virtual void destroyApplication_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ private:
+ DomainApplication_Impl_var da_servant_;
+ ACE_CString node_id_;
+ ::Deployment::NodeApplicationManager_var nam_;
+ Counter_AutoPtr counter_;
+ };
+
+ class DA_NA_ReplyHandlerImpl
+ : public POA_Deployment::AMI_ApplicationHandler
+ {
+ public:
+ class Counter
+ : public Completion_Counter_Base<ACE_Null_Mutex>
+ {
+ public:
+ Counter (unsigned int exec_count,
+ DomainApplication_Impl* da_servant,
+ ::Deployment::AMH_ApplicationResponseHandler_ptr _tao_rh);
+
+ protected:
+ virtual void on_all_completed ();
+ virtual void on_all_completed_with_failure ();
+
+ private:
+ DomainApplication_Impl_var da_servant_;
+ ::Deployment::AMH_ApplicationResponseHandler_var da_rh_;
+ };
+
+ typedef ACE_Refcounted_Auto_Ptr<Counter, ACE_Null_Mutex> Counter_AutoPtr;
+
+ DA_NA_ReplyHandlerImpl (DomainApplication_Impl* da_servant,
+ const char* node_id,
+ const Counter_AutoPtr& counter);
+
+ virtual void finishLaunch ();
+ virtual void finishLaunch_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ virtual void start (void);
+ virtual void start_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ private:
+ DomainApplication_Impl_var da_servant_;
+ ACE_CString node_id_;
+ Counter_AutoPtr counter_;
+ };
+
+} // DAnCE
+
+#include /**/ "ace/post.h"
+#endif // DOMAIN_APPLICATION_H
+
+
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
new file mode 100644
index 00000000000..d7e7fcf4c33
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
@@ -0,0 +1,22 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_lib, dance_output, dance_domainapplicationmanager_skel, \
+ dance_domainapplication, dance_nodemanager_stub, \
+ dance_nodemanager_skel, naming, \
+ dance_split_plan, dance_tools {
+ sharedname = DAnCE_DomainApplicationManager
+ dynamicflags = DOMAINAPPLICATIONMANAGER_BUILD_DLL
+
+ Source_Files {
+ DomainApplicationManager_Impl.cpp
+ Node_Locator.cpp
+ }
+
+ Header_Files {
+ Node_Locator.h
+ DomainApplicationManager_Impl.h
+ DomainApplicationManager_Export.h
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h
new file mode 100644
index 00000000000..31fa9b914b7
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s DomainApplicationManager
+// ------------------------------
+#ifndef DOMAINAPPLICATIONMANAGER_EXPORT_H
+#define DOMAINAPPLICATIONMANAGER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DOMAINAPPLICATIONMANAGER_HAS_DLL)
+# define DOMAINAPPLICATIONMANAGER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DOMAINAPPLICATIONMANAGER_HAS_DLL */
+
+#if !defined (DOMAINAPPLICATIONMANAGER_HAS_DLL)
+# define DOMAINAPPLICATIONMANAGER_HAS_DLL 1
+#endif /* ! DOMAINAPPLICATIONMANAGER_HAS_DLL */
+
+#if defined (DOMAINAPPLICATIONMANAGER_HAS_DLL) && (DOMAINAPPLICATIONMANAGER_HAS_DLL == 1)
+# if defined (DOMAINAPPLICATIONMANAGER_BUILD_DLL)
+# define DomainApplicationManager_Export ACE_Proper_Export_Flag
+# define DOMAINAPPLICATIONMANAGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DOMAINAPPLICATIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DOMAINAPPLICATIONMANAGER_BUILD_DLL */
+# define DomainApplicationManager_Export ACE_Proper_Import_Flag
+# define DOMAINAPPLICATIONMANAGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DOMAINAPPLICATIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DOMAINAPPLICATIONMANAGER_BUILD_DLL */
+#else /* DOMAINAPPLICATIONMANAGER_HAS_DLL == 1 */
+# define DomainApplicationManager_Export
+# define DOMAINAPPLICATIONMANAGER_SINGLETON_DECLARATION(T)
+# define DOMAINAPPLICATIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DOMAINAPPLICATIONMANAGER_HAS_DLL == 1 */
+
+// Set DOMAINAPPLICATIONMANAGER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DOMAINAPPLICATIONMANAGER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DOMAINAPPLICATIONMANAGER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DOMAINAPPLICATIONMANAGER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DOMAINAPPLICATIONMANAGER_NTRACE */
+
+#if (DOMAINAPPLICATIONMANAGER_NTRACE == 1)
+# define DOMAINAPPLICATIONMANAGER_TRACE(X)
+#else /* (DOMAINAPPLICATIONMANAGER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DOMAINAPPLICATIONMANAGER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DOMAINAPPLICATIONMANAGER_NTRACE == 1) */
+
+#endif /* DOMAINAPPLICATIONMANAGER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
new file mode 100644
index 00000000000..96c6fc488c1
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
@@ -0,0 +1,1018 @@
+// $Id$
+
+#include "DomainApplicationManager_Impl.h"
+#include "Deployment/Deployment_ConnectionC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+using namespace DAnCE;
+
+DomainApplicationManager_Impl::DomainApplicationManager_Impl (
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const Deployment::DeploymentPlan& plan,
+ Node_Locator & nodes)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ , poa_ (PortableServer::POA::_duplicate (poa))
+ , plan_ (plan)
+ , nodes_ (nodes)
+{
+ DANCE_TRACE( "DomainApplicationManager_Impl::DomainApplicationManager_Impl");
+}
+
+DomainApplicationManager_Impl::~DomainApplicationManager_Impl()
+{
+ DANCE_TRACE( "DomainApplicationManager_Impl::~DomainApplicationManager_Impl()");
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::~DomainApplicationManager_Impl - ")
+ ACE_TEXT("Deleting %u applications for plan %C\n"),
+ this->running_app_.size(),
+ this->getPlanUUID ()));
+ while (0 < this->running_app_.size())
+ {
+ DomainApplication_Impl* p = this->running_app_[this->running_app_.size()-1];
+ Deployment::DomainApplication_var app =
+ Deployment::DomainApplication::_narrow (this->poa_->servant_to_reference (p));
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (app);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_impl::~DomainApplicationManager_impl - ")
+ ACE_TEXT("deactivating DomainApplication[%@] object...\n"),
+ p));
+ this->poa_->deactivate_object (id);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::~DomainApplicationManager_impl - ")
+ ACE_TEXT("deleting DomainApplication.\n")));
+ this->running_app_.pop_back();
+ delete p;
+ }
+
+ this->sub_app_mgr_.unbind_all();
+ this->node_ids_.unbind_all ();
+}
+
+void
+DomainApplicationManager_Impl::startLaunch (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ const ::Deployment::Properties & configProperty)
+{
+ DANCE_TRACE( "DomainApplicationManager_impl::startLaunch");
+
+ try
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::startLaunch - ")
+ ACE_TEXT("Creating DomainApplication for plan %C\n"),
+ this->getPlanUUID ()));
+
+ DomainApplication_Impl* app = 0;
+ ACE_NEW_THROW_EX (app,
+ DomainApplication_Impl (this->getPlanUUID (),
+ this->poa_.in (),
+ this->sub_app_mgr_,
+ this->node_ids_),
+ CORBA::NO_MEMORY());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::startLaunch - ")
+ ACE_TEXT("Successfully created DomainApplication for plan %C\n"),
+ this->getPlanUUID ()));
+
+ StartLaunchCompletionHandler* slch = 0;
+ ACE_NEW_THROW_EX (slch,
+ StartLaunchCompletionHandler (this,
+ _tao_rh),
+ CORBA::NO_MEMORY ());
+
+ app->startLaunch (configProperty, slch);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::startLaunch - ")
+ ACE_TEXT("DomainApplication startLaunch has been called\n")));
+ }
+ catch (CORBA::Exception& ex)
+ {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->startLaunch_excep (&amh_exholder);
+ }
+ catch (...)
+ {
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (unknown_ex);
+ _tao_rh->startLaunch_excep (&amh_exholder);
+ }
+}
+
+void
+DomainApplicationManager_Impl::finish_startLaunch (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ DomainApplication_Impl *da_servant,
+ const ::Deployment::Connections & providedReference)
+{
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finish_startLaunch - ")
+ ACE_TEXT("DomainApplication[%u] for plan %C created %u provided references.\n"),
+ this->running_app_.size (),
+ this->getPlanUUID (),
+ providedReference.length ()));
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (da_servant);
+ this->running_app_.push_back(da_servant);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::finish_startLaunch - ")
+ ACE_TEXT("DomainApplication was successfully activated.\n")));
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+ _tao_rh->startLaunch (Deployment::DomainApplication::_narrow (ref.in ()), providedReference);
+}
+
+void
+DomainApplicationManager_Impl::fail_startLaunch (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ CORBA::Exception* local_ex)
+{
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::fail_startLaunch for plan %C called\n"),
+ this->getPlanUUID ()));
+
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->startLaunch_excep (&amh_exholder);
+}
+
+void
+DomainApplicationManager_Impl::destroyApplication (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ ::Deployment::Application_ptr application)
+{
+ DANCE_TRACE ( "DomainApplicationManager_Impl::destroyApplication");
+
+ try
+ {
+ for (TApplications::size_type i = 0; i < this->running_app_.size(); ++i)
+ {
+ DomainApplication_Impl* p = this->running_app_[i];
+ Deployment::DomainApplication_var app =
+ Deployment::DomainApplication::_narrow (this->poa_->servant_to_reference (p));
+ if (application->_is_equivalent (app.in()))
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("destroying DomainApplication[%u] for plan %C\n"),
+ i,
+ this->getPlanUUID ()));
+
+ // create completion handler
+ DestroyApplicationCompletionHandler* dach_ptr = 0;
+ ACE_NEW_THROW_EX (dach_ptr,
+ DestroyApplicationCompletionHandler (this,
+ _tao_rh,
+ p),
+ CORBA::NO_MEMORY ());
+ DA_CompletionHandler_AutoPtr dach (dach_ptr);
+
+ // deactivate servant
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (application);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("deactivating application object\n")));
+ this->poa_->deactivate_object (id);
+ // remove registration
+ for (TApplications::size_type j = i + 1; j < this->running_app_.size(); ++j)
+ {
+ this->running_app_[j-1] = this->running_app_[j];
+ }
+ this->running_app_.pop_back();
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("deleting application object\n")));
+
+ // remove default ref so servant will be deleted when
+ // var in DestroyApplicationCompletionHandler gets destructed
+ // at the finish of DomainApplication_Impl::destroyApplication
+ p->_remove_ref ();
+
+ // destruct
+ p->destroyApplication (dach);
+
+ return;
+ }
+ }
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Propagating StopError for CORBA exception caught here: %C\n"),
+ ex._info ().c_str ()));
+ CORBA::Exception* local_ex = new Deployment::StopError();
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->destroyApplication_excep (&amh_exholder);
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Propagating StopError for unknown exception caught here\n")));
+ CORBA::Exception* stop_ex = new Deployment::StopError();
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (stop_ex);
+ _tao_rh->destroyApplication_excep (&amh_exholder);
+ }
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Provided application reference unknown\n")));
+ CORBA::Exception* stop_ex = new Deployment::StopError();
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (stop_ex);
+ _tao_rh->destroyApplication_excep (&amh_exholder);
+}
+
+void
+DomainApplicationManager_Impl::getApplications (
+ ::Deployment::AMH_DomainApplicationManagerResponseHandler_ptr _tao_rh)
+{
+ DANCE_TRACE ( "DomainApplicationManager_Impl::getApplications ()");
+
+ try
+ {
+ Deployment::Applications* running_app_ptr = 0;
+ ACE_NEW_THROW_EX (running_app_ptr,
+ Deployment::Applications(),
+ CORBA::NO_MEMORY());
+ Deployment::Applications_var running_app (running_app_ptr);
+ running_app->length (this->running_app_.size());
+ CORBA::ULong index = 0;
+ for (TApplications::size_type i = 0; i < this->running_app_.size(); ++i)
+ {
+ CORBA::Object_var ref = this->poa_->servant_to_reference (this->running_app_[i]);
+ (*running_app) [index++] =
+ Deployment::DomainApplication::_narrow (ref.in ());
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::getApplications - ")
+ ACE_TEXT("Returning %u running applications for plan %C\n"),
+ running_app->length (),
+ this->getPlanUUID ()));
+ _tao_rh->getApplications (running_app);
+ return;
+ }
+ catch (CORBA::Exception& ex)
+ {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_DomainApplicationManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->getApplications_excep (&amh_exholder);
+ }
+ catch (...)
+ {
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ ::Deployment::AMH_DomainApplicationManagerExceptionHolder amh_exholder (unknown_ex);
+ _tao_rh->getApplications_excep (&amh_exholder);
+ }
+}
+
+void
+DomainApplicationManager_Impl::getPlan (
+ ::Deployment::AMH_DomainApplicationManagerResponseHandler_ptr _tao_rh)
+{
+ DANCE_TRACE ("DomainApplicationManager_Impl::getPlan ()");
+
+ try
+ {
+ Deployment::DeploymentPlan* plan_ptr = 0;
+ ACE_NEW_THROW_EX (plan_ptr,
+ Deployment::DeploymentPlan (this->plan_),
+ CORBA::NO_MEMORY());
+ Deployment::DeploymentPlan_var plan (plan_ptr);
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::getApplications - ")
+ ACE_TEXT("Returning plan %C\n"),
+ this->getPlanUUID ()));
+
+ _tao_rh->getPlan (plan);
+ return;
+ }
+ catch (CORBA::Exception& ex)
+ {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_DomainApplicationManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->getApplications_excep (&amh_exholder);
+ }
+ catch (...)
+ {
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ ::Deployment::AMH_DomainApplicationManagerExceptionHolder amh_exholder (unknown_ex);
+ _tao_rh->getApplications_excep (&amh_exholder);
+ }
+}
+
+const char*
+DomainApplicationManager_Impl::getPlanUUID (void)
+{
+ return this->plan_.UUID.in ();
+}
+
+void
+DomainApplicationManager_Impl::preparePlan(DAM_CompletionHandler* completion_handler)
+{
+ DANCE_TRACE ("DomainApplicationManager_Impl::preparePlan()");
+
+ DAM_CompletionHandler_AutoPtr _ch_ptr (completion_handler); // manage handler
+
+ try
+ {
+ // Map of sub plans for each node
+ Split_Plan::TNodePlans sub_plans;
+ Split_Plan split_plan (this->plan_, sub_plans);
+ split_plan.split_plan ();
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Plan %C successfully split. %u nodes to prepare.\n"),
+ this->getPlanUUID (),
+ sub_plans.current_size ()));
+
+ // create completion counter
+ DAM_NM_ReplyHandlerImpl::Counter* _cp = 0;
+ ACE_NEW_THROW_EX (_cp,
+ DAM_NM_ReplyHandlerImpl::Counter (sub_plans.current_size (),
+ this,
+ _ch_ptr),
+ CORBA::NO_MEMORY ());
+ DAM_NM_ReplyHandlerImpl::Counter_AutoPtr _counter_ptr (_cp);
+
+ // Executing preparePlan on each NodeManager described in DeploymentPlan
+ for (Split_Plan::TNodePlans::iterator iter_plans = sub_plans.begin();
+ iter_plans != sub_plans.end();
+ ++iter_plans)
+ {
+ try
+ {
+ // Finding correspondent NodeManager
+ Deployment::NodeManager_var nm = this->nodes_.locate_node ((*iter_plans).ext_id_.c_str ());;
+ // If NodeManager not found throw StartError exception
+ if (CORBA::is_nil (nm.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Deployment::StartError exception. NodeManager %C cannot be found\n"),
+ (*iter_plans).ext_id_.c_str()));
+ throw Deployment::StartError ( (*iter_plans).ext_id_.c_str(),
+ "NodeManager not found");
+ }
+
+ // create and activate reply handler
+ DAM_NM_ReplyHandlerImpl* dam_nm_rh_servant = 0;
+ ACE_NEW_THROW_EX (dam_nm_rh_servant,
+ DAnCE::DAM_NM_ReplyHandlerImpl (this,
+ nm.in (),
+ (*iter_plans).ext_id_.c_str(),
+ _counter_ptr),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (dam_nm_rh_servant);
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+
+ ::Deployment::AMI_NodeManagerHandler_var dam_nm_handler =
+ ::Deployment::AMI_NodeManagerHandler::_narrow (ref.in ());
+
+ // Calling preparePlan for node, specified in current sub plan
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Calling preparePlan on node %C\n"),
+ (*iter_plans).ext_id_.c_str()));
+
+ nm->sendc_preparePlan (dam_nm_handler.in (),
+ (*iter_plans).int_id_,
+ Deployment::ResourceCommitmentManager::_nil());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("preparePlan on node %C has been called\n"),
+ (*iter_plans).ext_id_.c_str()));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught a CORBA exception handling node %C : %C\n"),
+ (*iter_plans).ext_id_.c_str(),
+ ex._info ().c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught unknown exception handling node %C\n"),
+ (*iter_plans).ext_id_.c_str()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark off node
+ _counter_ptr->decrement_exec_count ();
+ // continue for next node
+ }
+ }
+ }
+ catch (Deployment::StartError &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Propagating StartError exception caught here\n")));
+ throw e;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught a CORBA exception, propagating StartError: %C\n"),
+ ex._info ().c_str ()));
+ throw ::Deployment::StartError ();
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught unknown exception. Propagating StartError\n")));
+ throw ::Deployment::StartError ();
+ }
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - finished\n")));
+}
+
+void
+DomainApplicationManager_Impl::destroyManager (DAM_CompletionHandler* completion_handler)
+{
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::destroyManager - ")
+ ACE_TEXT("Destroying %u applications for plan %C\n"),
+ this->running_app_.size (),
+ this->getPlanUUID ()));
+
+ DAM_CompletionHandler_AutoPtr _ch_ptr (completion_handler); // manage handler
+
+ try
+ {
+ if (this->running_app_.size() > 0)
+ {
+ // create our completionhandler
+ DestroyManagerCompletionHandler* dmch = 0;
+ ACE_NEW_THROW_EX (dmch,
+ DestroyManagerCompletionHandler (this,
+ _ch_ptr,
+ running_app_.size ()),
+ CORBA::NO_MEMORY ());
+ DA_CompletionHandler_AutoPtr da_ch_ptr (dmch);
+
+ while (0 < this->running_app_.size())
+ {
+ DomainApplication_Impl* p = this->running_app_[this->running_app_.size()-1];
+ try
+ {
+ Deployment::DomainApplication_var app =
+ Deployment::DomainApplication::_narrow (this->poa_->servant_to_reference (p));
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (app);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyManager - ")
+ ACE_TEXT("deactivating DomainApplication[%@] object...\n"),
+ p));
+ this->poa_->deactivate_object (id);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyManager - ")
+ ACE_TEXT("calling destroyApplication for DomainApplication[%@].\n"),
+ p));
+ p->destroyApplication (da_ch_ptr);
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::destroyManager - ")
+ ACE_TEXT("Caught a CORBA exception for DomainApplication[%@]: %C\n"),
+ p,
+ ex._info ().c_str ()));
+ // mark failure
+ dmch->increment_fail_count ();
+ // mark off app
+ dmch->decrement_exec_count ();
+ // continue
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::destroyManager - ")
+ ACE_TEXT("Caught unknown exception for DomainApplication[%@].\n"),
+ p));
+ // mark failure
+ dmch->increment_fail_count ();
+ // mark off app
+ dmch->decrement_exec_count ();
+ // continue
+ }
+ this->running_app_.pop_back();
+ }
+ }
+ else
+ {
+ // nothing to destroy, complete
+ _ch_ptr->handle_completion (this);
+ }
+ }
+ catch (Deployment::StopError &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::destroyManager - ")
+ ACE_TEXT("Propagating StopError exception caught here\n")));
+ throw e;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::destroyManager - ")
+ ACE_TEXT("Caught a CORBA exception, propagating StopError: %C\n"),
+ ex._info ().c_str ()));
+ throw ::Deployment::StopError ();
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::destroyManager - ")
+ ACE_TEXT("Caught unknown exception. Propagating StopError\n")));
+ throw ::Deployment::StopError ();
+ }
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::destroyManager - finished\n")));
+}
+
+void
+DomainApplicationManager_Impl::finishDestroyManager (const DAM_CompletionHandler_AutoPtr& ch_ptr)
+{
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Destroying %u node managers for plan %C\n"),
+ this->sub_app_mgr_.current_size (),
+ this->getPlanUUID ()));
+
+ try
+ {
+ // create counters
+ DAM_NM_ReplyHandlerImpl::Counter* _cp = 0;
+ ACE_NEW_THROW_EX (_cp,
+ DAM_NM_ReplyHandlerImpl::Counter (sub_app_mgr_.current_size (),
+ this,
+ ch_ptr),
+ CORBA::NO_MEMORY ());
+ DAM_NM_ReplyHandlerImpl::Counter_AutoPtr _counter_ptr (_cp);
+
+ for (DomainApplication_Impl::TNam2Nm::iterator iter = this->sub_app_mgr_.begin();
+ iter != this->sub_app_mgr_.end();
+ ++iter)
+ {
+ ACE_CString node_id;
+ this->node_ids_.find ((*iter).int_id_, node_id);
+
+ DAM_NM_ReplyHandlerImpl* dam_nm_rh_servant = 0;
+ try
+ {
+ // create and activate reply handler
+ ACE_NEW_THROW_EX (dam_nm_rh_servant,
+ DAnCE::DAM_NM_ReplyHandlerImpl (this,
+ (*iter).int_id_.in (),
+ node_id.c_str (),
+ _counter_ptr),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (dam_nm_rh_servant);
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+
+ ::Deployment::AMI_NodeManagerHandler_var dam_nm_handler =
+ ::Deployment::AMI_NodeManagerHandler::_narrow (ref.in ());
+
+ // Calling destroyManager for node
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Calling destroyManager on node manager for node %C\n"),
+ node_id.c_str ()));
+
+ (*iter).int_id_->sendc_destroyManager (dam_nm_handler.in (),
+ (*iter).ext_id_.in());
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Caught a CORBA exception attempting to call destroyManager on node %C: %C\n"),
+ node_id.c_str (),
+ ex._info ().c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark of node
+ _counter_ptr->decrement_exec_count ();
+ // continue to next node
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Caught unknown exception attempting to call destroyManager on node %C\n"),
+ node_id.c_str ()));
+ // mark failure
+ _counter_ptr->increment_fail_count ();
+ // mark of node
+ _counter_ptr->decrement_exec_count ();
+ // continue to next node
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("destroyManager has been called on node manager\n")));
+ }
+ }
+ catch (Deployment::StopError &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Propagating StopError exception caught here\n")));
+ CORBA::Exception* local_ex = e._tao_duplicate ();
+ ch_ptr->handle_exception (local_ex);
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Caught a CORBA exception, propagating StopError: %C\n"),
+ ex._info ().c_str ()));
+ ch_ptr->handle_exception (new ::Deployment::StopError ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - ")
+ ACE_TEXT("Caught unknown exception. Propagating StopError\n")));
+ ch_ptr->handle_exception (new ::Deployment::StopError ());
+ }
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::finishDestroyManager - finished\n")));
+}
+
+DAM_NM_ReplyHandlerImpl::Counter::Counter (
+ unsigned int exec_count,
+ DomainApplicationManager_Impl* dam_servant,
+ const DAM_CompletionHandler_AutoPtr& em_completion_handler)
+ : Completion_Counter_Base<ACE_Null_Mutex> (exec_count, 0),
+ dam_servant_ (DomainApplicationManager_Impl_var::_duplicate (dam_servant)),
+ em_ch_ptr_ (em_completion_handler)
+{
+}
+
+void
+DAM_NM_ReplyHandlerImpl::Counter::on_all_completed ()
+{
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::Counter::on_all_completed - ")
+ ACE_TEXT("Successfully prepared plan: %C\n"),
+ this->dam_servant_->getPlanUUID ()));
+
+ this->em_ch_ptr_->handle_completion (dam_servant_.in ());
+}
+
+void
+DAM_NM_ReplyHandlerImpl::Counter::on_all_completed_with_failure ()
+{
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::Counter::on_all_completed_with_failure - ")
+ ACE_TEXT("%u errors preparing plan: %C\n"),
+ this->fail_count (),
+ this->dam_servant_->getPlanUUID ()));
+
+ this->em_ch_ptr_->handle_exception (new ::Deployment::StartError());
+}
+
+DAM_NM_ReplyHandlerImpl::DAM_NM_ReplyHandlerImpl (
+ DomainApplicationManager_Impl* dam_servant,
+ ::Deployment::NodeManager_ptr nm,
+ const char* node_id,
+ const Counter_AutoPtr& counter)
+ : dam_servant_ (DomainApplicationManager_Impl_var::_duplicate (dam_servant)),
+ nm_ (::Deployment::NodeManager::_duplicate (nm)),
+ node_id_ (node_id),
+ counter_ (counter)
+{
+}
+
+DAM_NM_ReplyHandlerImpl::~DAM_NM_ReplyHandlerImpl ()
+{
+}
+
+void DAM_NM_ReplyHandlerImpl::joinDomain (void)
+{
+}
+void DAM_NM_ReplyHandlerImpl::joinDomain_excep (
+ ::Messaging::ExceptionHolder * /*excep_holder*/)
+{
+}
+
+void DAM_NM_ReplyHandlerImpl::leaveDomain (void)
+{
+}
+void DAM_NM_ReplyHandlerImpl::leaveDomain_excep (
+ ::Messaging::ExceptionHolder * /*excep_holder*/)
+{
+}
+
+void DAM_NM_ReplyHandlerImpl::preparePlan (
+ ::Deployment::NodeApplicationManager_ptr nam)
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan - ")
+ ACE_TEXT("Finished preparePlan on node %C\n"),
+ this->node_id_.c_str()));
+
+ if (CORBA::is_nil (nam))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan - ")
+ ACE_TEXT("PreparePlan failed for node %C, returning a nil ")
+ ACE_TEXT("NodeApplicationManager pointer.\n"),
+ this->node_id_.c_str()));
+ // add failure
+ this->counter_->increment_fail_count ();
+ }
+ else
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan - ")
+ ACE_TEXT("Sucessfully prepared node %C for deployment\n"),
+ this->node_id_.c_str()));
+
+ // We save NAM reference ptr in TNodes vector were it places to var variable
+ this->dam_servant_->sub_app_mgr_.bind (::Deployment::NodeApplicationManager::_duplicate (nam),
+ ::Deployment::NodeManager::_duplicate (this->nm_.in ()));
+ // nm to node Id table
+ this->dam_servant_->node_ids_.bind (::Deployment::NodeManager::_duplicate (this->nm_.in ()),
+ this->node_id_);
+
+ }
+
+ // mark off node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->dam_servant_->poa_->servant_to_id (this);
+ this->dam_servant_->poa_->deactivate_object (oid.in ());
+}
+
+void DAM_NM_ReplyHandlerImpl::preparePlan_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan_excep - ")
+ ACE_TEXT("Finished preparePlan on node %C\n"),
+ this->node_id_.c_str()));
+
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (Deployment::StartError &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan_excep - ")
+ ACE_TEXT("StartError exception caught for node %C.\n"),
+ this->node_id_.c_str()));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan_excep - ")
+ ACE_TEXT("Caught a CORBA exception for node %C: %C\n"),
+ this->node_id_.c_str(),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::preparePlan_excep - ")
+ ACE_TEXT("Caught unknown exception for node %C.\n"),
+ this->node_id_.c_str()));
+ }
+
+ // add failure
+ this->counter_->increment_fail_count ();
+
+ // mark off node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->dam_servant_->poa_->servant_to_id (this);
+ this->dam_servant_->poa_->deactivate_object (oid.in ());
+}
+
+void DAM_NM_ReplyHandlerImpl::destroyManager (void)
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAM_NM_ReplyHandlerImpl::destroyApplication called.\n")));
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::destroyApplication - ")
+ ACE_TEXT("Plan %C node %C node application manager destroy succeeded\n"),
+ this->dam_servant_->getPlanUUID (),
+ this->node_id_.c_str ()));
+
+ // mark off one node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->dam_servant_->poa_->servant_to_id (this);
+ this->dam_servant_->poa_->deactivate_object (oid.in ());
+}
+void DAM_NM_ReplyHandlerImpl::destroyManager_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::destroyApplication_excep called for plan %C node %C"),
+ this->dam_servant_->getPlanUUID (),
+ this->node_id_.c_str ()));
+
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (Deployment::StopError &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::destroyApplication_excep - ")
+ ACE_TEXT("StopError exception caught.\n")));
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::destroyApplication_excep - ")
+ ACE_TEXT("Caught a CORBA exception: %C\n"),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DAM_NM_ReplyHandlerImpl::destroyApplication_excep - ")
+ ACE_TEXT("Caught unknown exception.\n")));
+ }
+
+ // add failure
+ this->counter_->increment_fail_count ();
+
+ // mark off node
+ this->counter_->decrement_exec_count ();
+
+ // deactivate AMI response handler
+ PortableServer::ObjectId_var oid = this->dam_servant_->poa_->servant_to_id (this);
+ this->dam_servant_->poa_->deactivate_object (oid.in ());
+}
+
+void DAM_NM_ReplyHandlerImpl::getDynamicResources (
+ const ::Deployment::Resources & /*ami_return_val*/)
+{
+}
+void DAM_NM_ReplyHandlerImpl::getDynamicResources_excep (
+ ::Messaging::ExceptionHolder * /*excep_holder*/)
+{
+}
+
+DomainApplicationManager_Impl::StartLaunchCompletionHandler::StartLaunchCompletionHandler (
+ DomainApplicationManager_Impl *dam_servant,
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh)
+ : dam_servant_ (DomainApplicationManager_Impl_var::_duplicate (dam_servant)),
+ dam_rh_ (::Deployment::AMH_ApplicationManagerResponseHandler::_duplicate (_tao_rh))
+{
+}
+
+DomainApplicationManager_Impl::StartLaunchCompletionHandler::~StartLaunchCompletionHandler ()
+{
+}
+
+void
+DomainApplicationManager_Impl::StartLaunchCompletionHandler::handle_completion (DomainApplication_Impl *da_servant)
+{
+ try
+ {
+ ::Deployment::Connections_var connections;
+ ACE_NEW_THROW_EX (connections,
+ Deployment::Connections (),
+ CORBA::NO_MEMORY ());
+
+ da_servant->getConnections (connections.inout ());
+
+ this->dam_servant_->finish_startLaunch (
+ this->dam_rh_.in (),
+ da_servant,
+ connections);
+ }
+ catch (CORBA::Exception& ex)
+ {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ this->dam_servant_->fail_startLaunch (this->dam_rh_.in (),
+ local_ex);
+ }
+ catch (...)
+ {
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ this->dam_servant_->fail_startLaunch (this->dam_rh_.in (),
+ unknown_ex);
+ }
+}
+
+void
+DomainApplicationManager_Impl::StartLaunchCompletionHandler::handle_exception (CORBA::Exception* local_ex)
+{
+ this->dam_servant_->fail_startLaunch (this->dam_rh_.in (),
+ local_ex);
+}
+
+DomainApplicationManager_Impl::DestroyManagerCompletionHandler::DestroyManagerCompletionHandler (
+ DomainApplicationManager_Impl *dam_servant,
+ const DAM_CompletionHandler_AutoPtr& ch_ptr,
+ unsigned int exec_count)
+ : Completion_Counter_Base<ACE_Null_Mutex> (exec_count, 0),
+ dam_servant_ (DomainApplicationManager_Impl_var::_duplicate (dam_servant)),
+ dam_ch_ (ch_ptr)
+{
+}
+
+void
+DomainApplicationManager_Impl::DestroyManagerCompletionHandler::handle_completion (
+ DomainApplication_Impl *da_servant)
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::DestroyManagerCompletionHandler::handle_completion - ")
+ ACE_TEXT("Finished destroyApplication on DomainApplication[%@] for plan %C\n"),
+ da_servant,
+ this->dam_servant_->getPlanUUID ()));
+
+ try
+ {
+ da_servant->_remove_ref ();
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::DestroyManagerCompletionHandler::handle_completion - ")
+ ACE_TEXT("UNEXPECTED exception while decrementing servant reference\n")));
+ }
+
+ // mark of application
+ this->decrement_exec_count ();
+}
+
+void
+DomainApplicationManager_Impl::DestroyManagerCompletionHandler::handle_exception (
+ CORBA::Exception* local_ex)
+{
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::DestroyManagerCompletionHandler::handle_exception - ")
+ ACE_TEXT("CORBA exception %C for destroyApplication on domain application for plan %C\n"),
+ local_ex->_info ().c_str (),
+ this->dam_servant_->getPlanUUID ()));
+
+ delete local_ex; // clean up
+
+ // add failure
+ this->increment_fail_count ();
+
+ // mark of application
+ this->decrement_exec_count ();
+}
+
+void
+DomainApplicationManager_Impl::DestroyManagerCompletionHandler::on_all_completed ()
+{
+ // all applications gone, now finish it
+ this->dam_servant_->finishDestroyManager (dam_ch_);
+}
+
+void
+DomainApplicationManager_Impl::DestroyManagerCompletionHandler::on_all_completed_with_failure ()
+{
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::DestroyManagerCompletionHandler::on_all_completed_with_failure - ")
+ ACE_TEXT("%u errors destroying domain applications\n"),
+ this->fail_count_i ()));
+
+ this->dam_ch_->handle_exception (new ::Deployment::StopError());
+}
+
+DomainApplicationManager_Impl::DestroyApplicationCompletionHandler::DestroyApplicationCompletionHandler (
+ DomainApplicationManager_Impl *dam_servant,
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ DomainApplication_Impl *da_servant)
+ : dam_servant_ (DomainApplicationManager_Impl_var::_duplicate (dam_servant)),
+ dam_rh_ (::Deployment::AMH_ApplicationManagerResponseHandler::_duplicate (_tao_rh)),
+ da_servant_ (DomainApplication_Impl_var::_duplicate (da_servant))
+{
+}
+
+void DomainApplicationManager_Impl::DestroyApplicationCompletionHandler::handle_completion (
+ DomainApplication_Impl * /*da_servant*/)
+{
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::DestroyApplicationCompletionHandler::handle_completion - ")
+ ACE_TEXT("finished\n")));
+ dam_rh_->destroyApplication ();
+}
+
+void DomainApplicationManager_Impl::DestroyApplicationCompletionHandler::handle_exception (
+ CORBA::Exception* local_ex)
+{
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("ExecutionManager_Impl::DestroyManagerCompletionHandler::handle_exception - ")
+ ACE_TEXT("propagating exception\n")));
+ ::Deployment::AMH_ApplicationManagerExceptionHolder amh_exholder (local_ex);
+ dam_rh_->destroyApplication_excep (&amh_exholder);
+}
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
new file mode 100644
index 00000000000..6d850969283
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
@@ -0,0 +1,218 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file DomainApplicationManager_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Implementation of POA_Deployment::DomainApplicationManager
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef DOMAINAPPLICATIONMANAGER_IMPL_H_
+#define DOMAINAPPLICATIONMANAGER_IMPL_H_
+
+#include "ace/Vector_T.h"
+#include "ace/SStringfwd.h"
+#include "ace/Map_Manager.h"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "DomainApplicationManager_Export.h"
+#include "Node_Locator.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+#include "Deployment/Deployment_NodeManagerS.h"
+#include "DomainApplication/Domain_Application_Impl.h"
+#include "Completion/CompletionHandler_T.h"
+#include "Completion/Completion_Counter_Base.h"
+#include "Deployment/Deployment_DomainApplicationManagerS.h"
+#include "Split_Plan/Split_Plan_impl.h"
+
+namespace DAnCE
+ {
+ class DomainApplicationManager_Impl;
+
+ typedef PortableServer::Servant_var<DomainApplicationManager_Impl> DomainApplicationManager_Impl_var;
+
+ typedef CompletionHandler<DomainApplicationManager_Impl> DAM_CompletionHandler;
+
+ typedef ACE_Refcounted_Auto_Ptr<DAM_CompletionHandler, ACE_Null_Mutex> DAM_CompletionHandler_AutoPtr;
+
+ class DAM_NM_ReplyHandlerImpl;
+
+ class DomainApplicationManager_Export DomainApplicationManager_Impl
+ : public virtual POA_Deployment::AMH_DomainApplicationManager
+ {
+ public:
+ DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const ::Deployment::DeploymentPlan& plan,
+ Node_Locator &nodes);
+
+ virtual ~DomainApplicationManager_Impl();
+
+ virtual void startLaunch (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ const ::Deployment::Properties & configProperty);
+
+ virtual void destroyApplication (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ ::Deployment::Application_ptr);
+
+ virtual void getApplications (
+ ::Deployment::AMH_DomainApplicationManagerResponseHandler_ptr _tao_rh);
+
+ virtual void getPlan (
+ ::Deployment::AMH_DomainApplicationManagerResponseHandler_ptr _tao_rh);
+
+ const char* getPlanUUID (void);
+
+ void preparePlan (DAM_CompletionHandler* em_handler);
+
+ void destroyManager (DAM_CompletionHandler* em_handler);
+
+ class StartLaunchCompletionHandler
+ : public CompletionHandler<DomainApplication_Impl>
+ {
+ public:
+ StartLaunchCompletionHandler (
+ DomainApplicationManager_Impl *dam_servant,
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh);
+ ~StartLaunchCompletionHandler ();
+
+ virtual void handle_completion (DomainApplication_Impl *da_servant);
+ virtual void handle_exception (CORBA::Exception* local_ex);
+
+ private:
+ DomainApplicationManager_Impl_var dam_servant_;
+ ::Deployment::AMH_ApplicationManagerResponseHandler_var dam_rh_;
+ };
+
+ class DestroyManagerCompletionHandler
+ : public CompletionHandler<DomainApplication_Impl>,
+ public Completion_Counter_Base<ACE_Null_Mutex>
+ {
+ public:
+ DestroyManagerCompletionHandler (
+ DomainApplicationManager_Impl *dam_servant,
+ const DAM_CompletionHandler_AutoPtr& ch_ptr,
+ unsigned int exec_count);
+
+ virtual void handle_completion (DomainApplication_Impl *da_servant);
+ virtual void handle_exception (CORBA::Exception* local_ex);
+
+ protected:
+ virtual void on_all_completed ();
+ virtual void on_all_completed_with_failure ();
+
+ private:
+ DomainApplicationManager_Impl_var dam_servant_;
+ DAM_CompletionHandler_AutoPtr dam_ch_;
+ };
+
+ class DestroyApplicationCompletionHandler
+ : public CompletionHandler<DomainApplication_Impl>
+ {
+ public:
+ DestroyApplicationCompletionHandler (
+ DomainApplicationManager_Impl *dam_servant,
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ DomainApplication_Impl *da_servant);
+
+ virtual void handle_completion (DomainApplication_Impl *da_servant);
+ virtual void handle_exception (CORBA::Exception* local_ex);
+
+ private:
+ DomainApplicationManager_Impl_var dam_servant_;
+ ::Deployment::AMH_ApplicationManagerResponseHandler_var dam_rh_;
+ DomainApplication_Impl_var da_servant_;
+ };
+
+ private:
+ void finish_startLaunch (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ DomainApplication_Impl *da_servant,
+ const ::Deployment::Connections & providedReference);
+ void fail_startLaunch (
+ ::Deployment::AMH_ApplicationManagerResponseHandler_ptr _tao_rh,
+ CORBA::Exception* local_ex);
+
+ void finishDestroyManager (const DAM_CompletionHandler_AutoPtr& ch_ptr);
+
+ friend class StartLaunchCompletionHandler;
+ friend class DestroyManagerCompletionHandler;
+
+ friend class DAM_NM_ReplyHandlerImpl;
+
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ const Deployment::DeploymentPlan plan_;
+ DomainApplication_Impl::TNam2Nm sub_app_mgr_;
+ DomainApplication_Impl::TNm2Id node_ids_;
+ Node_Locator &nodes_;
+ typedef ACE_Vector<DomainApplication_Impl*> TApplications;
+ TApplications running_app_;
+ };
+
+ class DAM_NM_ReplyHandlerImpl
+ : public POA_Deployment::AMI_NodeManagerHandler
+ {
+ public:
+ class Counter
+ : public Completion_Counter_Base<ACE_Null_Mutex>
+ {
+ public:
+ Counter (unsigned int exec_count,
+ DomainApplicationManager_Impl* dam_servant,
+ const DAM_CompletionHandler_AutoPtr& em_completion_handler);
+
+ protected:
+ virtual void on_all_completed ();
+ virtual void on_all_completed_with_failure ();
+
+ private:
+ DomainApplicationManager_Impl_var dam_servant_;
+ DAM_CompletionHandler_AutoPtr em_ch_ptr_;
+ };
+
+ typedef ACE_Refcounted_Auto_Ptr<Counter, ACE_Null_Mutex> Counter_AutoPtr;
+
+ DAM_NM_ReplyHandlerImpl (DomainApplicationManager_Impl* dam_servant,
+ Deployment::NodeManager_ptr nm,
+ const char* node_id,
+ const Counter_AutoPtr& counter);
+ virtual ~DAM_NM_ReplyHandlerImpl ();
+
+ virtual void joinDomain (void);
+ virtual void joinDomain_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ virtual void leaveDomain (void);
+ virtual void leaveDomain_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ virtual void preparePlan (
+ ::Deployment::NodeApplicationManager_ptr ami_return_val);
+ virtual void preparePlan_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ virtual void destroyManager (void);
+ virtual void destroyManager_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ virtual void getDynamicResources (
+ const ::Deployment::Resources & ami_return_val);
+ virtual void getDynamicResources_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ private:
+ DomainApplicationManager_Impl_var dam_servant_;
+ Deployment::NodeManager_var nm_;
+ ACE_CString node_id_;
+ Counter_AutoPtr counter_;
+ };
+
+ }//DAnCE
+
+#endif /*DOMAINAPPLICATIONMANAGER_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp
new file mode 100644
index 00000000000..123854b3a16
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp
@@ -0,0 +1,161 @@
+// $Id$
+
+#include "Node_Locator.h"
+#include "ace/Read_Buffer.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+ Node_Locator::Node_Locator (CORBA::ORB_ptr orb,
+ CosNaming::NamingContext_ptr nc)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ nc_ (CosNaming::NamingContext::_duplicate (nc))
+ {
+ }
+
+ ::Deployment::NodeManager_ptr
+ Node_Locator::locate_node (const char *name)
+ {
+ ACE_CString ior;
+
+ if (this->nodes_.find (name, ior) == 0)
+ {
+ return this->resolve_ior (name, ior.c_str ());
+ }
+ else
+ {
+ return this->ns_lookup (name);
+ }
+ }
+
+ bool
+ Node_Locator::process_node_map (const ACE_TCHAR *filename)
+ {
+ DANCE_TRACE ("Node_Locator::process_node_map");
+
+ if (!filename)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::process_node_map - ")
+ ACE_TEXT("Error: Provided with nil filename\n")));
+ return false;
+ }
+
+ FILE *inf = ACE_OS::fopen (filename, ACE_TEXT("r"));
+
+ if (!inf)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::process_node_map - ")
+ ACE_TEXT("Fail to open node manager map data file: <%s>\n"),
+ filename));
+ return false;
+ }
+
+ ACE_Read_Buffer reader (inf, true);
+
+ char * string = 0;
+ // Read from the file line by line
+ while ((string = reader.read ('\n')) != 0)
+ {
+ if (ACE_OS::strlen (string) == 0) continue;
+
+ // Search from the right to the first space
+ const char* ior_start = ACE_OS::strrchr (string, ' ');
+ // Search from the left to the first space
+ const char* dest_end = ACE_OS::strchr (string, ' ');
+
+ // The destination is first followed by some spaces
+ ACE_CString destination (string, dest_end - string);
+ // And then the IOR
+ ACE_CString ior (ior_start + 1, ACE_OS::strlen (ior_start + 1));
+ reader.alloc ()->free (string);
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("Node_Locator::process_node_map - ")
+ ACE_TEXT("Storing IOR %C for destination %C\n"),
+ ior.c_str (), destination.c_str ()));
+ this->nodes_.bind (destination, ior);
+ }
+
+ return true;
+ }
+
+ ::Deployment::NodeManager_ptr
+ Node_Locator::resolve_ior (const char *name, const char *ior)
+ {
+ DANCE_TRACE ("Node_Locator::resolve_ior");
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Resolving ior %C for destination %C\n"),
+ ior, name));
+
+ CORBA::Object_var obj = this->orb_->string_to_object (ior);
+
+ ::Deployment::NodeManager_var nm = ::Deployment::NodeManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (nm.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Error: Unable to retrieve reference for destination ")
+ ACE_TEXT("%C and ior %C\n"),
+ name, ior));
+ }
+
+ return nm._retn ();
+ }
+
+ void
+ Node_Locator::store_ior (const char *name, const char *ior)
+ {
+ DANCE_TRACE ("Node_Locator::store_ior");
+ this->nodes_.bind (name, ior);
+ }
+
+ ::Deployment::NodeManager_ptr
+ Node_Locator::ns_lookup (const char *nodename)
+ {
+ DANCE_TRACE ("Node_Locator::ns_lookup");
+
+ if (CORBA::is_nil (this->nc_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Nameservice lookup of %C failed because there is no naming service.\n"),
+ nodename));
+ return ::Deployment::NodeManager::_nil ();
+ }
+
+ try
+ {
+ CosNaming::Name name;
+ name.length (1);
+
+ name[0].id = nodename;
+ name[0].kind = "NodeManager";
+
+ CORBA::Object_var obj = this->nc_->resolve (name);
+ ::Deployment::NodeManager_var nm = ::Deployment::NodeManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (nm.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Unable to narrow provided reference for node %C\n"),
+ nodename));
+ }
+
+ return nm._retn ();
+ }
+ catch (const CORBA::Exception &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Caught CORBA exception while looking up name %C:%C\n"),
+ nodename, e._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Caught unexpected exception while looking up name %C\n"),
+ nodename));
+ }
+
+ return ::Deployment::NodeManager::_nil ();
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h
new file mode 100644
index 00000000000..2d82acc9750
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h
@@ -0,0 +1,55 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Node_Locator.h
+ *
+ * $Id$
+ *
+ * @brief Locates NodeManager instances.
+ *
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NODE_LOCATOR_H_
+#define NODE_LOCATOR_H_
+
+#include "ace/Map_Manager.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+#include "tao/ORB.h"
+#include "DAnCE/Deployment/Deployment_NodeManagerC.h"
+#include "DomainApplicationManager/DomainApplicationManager_Export.h"
+
+namespace DAnCE
+{
+ class DomainApplicationManager_Export Node_Locator
+ {
+ public:
+ Node_Locator (CORBA::ORB_ptr orb,
+ CosNaming::NamingContext_ptr nc);
+
+ ::Deployment::NodeManager_ptr locate_node (const char *name);
+
+ bool process_node_map (const ACE_TCHAR *file);
+
+ void store_ior (const char *name, const char *ior);
+
+ private:
+ ::Deployment::NodeManager_ptr resolve_ior (const char *name,
+ const char *ior);
+
+ ::Deployment::NodeManager_ptr ns_lookup (const char *name);
+
+ typedef ACE_Map_Manager<ACE_CString,
+ ACE_CString,
+ ACE_Null_Mutex> NODEMAP;
+
+ NODEMAP nodes_;
+ CORBA::ORB_var orb_;
+ CosNaming::NamingContext_var nc_;
+ };
+
+}
+
+#endif /* NODE_LOCATOR_H_ */
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
new file mode 100644
index 00000000000..b16dd5c81dc
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
@@ -0,0 +1,17 @@
+// -*- MPC -*-
+// $Id$
+
+project(Execution_Manager_Exec) : dance_exe, naming, \
+ dance_nodemanager_skel, \
+ dance_domainapplicationmanager, \
+ dance_executionmanager_skel, \
+ utils, dance_logger, avoids_minimum_corba, \
+ iortable, dance_split_plan, dance_tools {
+ exename = dance_execution_manager
+
+ Source_Files {
+ ExecutionManager_Impl.cpp
+ ExecutionManager_Module.cpp
+ Execution_Manager.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
new file mode 100644
index 00000000000..b0bf941bc2b
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
@@ -0,0 +1,293 @@
+//--*C++*--
+// $Id$
+
+#include "ExecutionManager_Impl.h"
+
+#include "Config_Handlers/DnC_Dump.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+using namespace DAnCE;
+
+ExecutionManager_Impl::ExecutionManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ CosNaming::NamingContext_ptr nc)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ locator_ (orb, nc)
+{
+ DANCE_TRACE ( "ExecutionManager_Impl::ExecutionManager_Impl");
+}
+
+ExecutionManager_Impl::~ExecutionManager_Impl()
+{
+ DANCE_TRACE ( "ExecutionManager_Impl::~ExecutionManager_Impl");
+ for (TDomainManagers::iterator iter = this->managers_.begin();
+ iter != this->managers_.end();
+ ++iter)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("deactivating DAM \"%C\"\n"), (*iter).ext_id_.c_str()));
+ PortableServer::ObjectId_var id = this->poa_->servant_to_id ( (*iter).int_id_);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("before deactivate_object...\n")));
+ this->poa_->deactivate_object (id.in());
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("deleting DomainApplicationManager\n")));
+ delete (*iter).int_id_;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("DomainApplicationManager deleted\n")));
+ }
+}
+
+void
+ExecutionManager_Impl::preparePlan (::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ const ::Deployment::DeploymentPlan & plan,
+ ::Deployment::ResourceCommitmentManager_ptr /*resourceCommitment*/)
+{
+ DANCE_TRACE ( "ExecutionManager_Impl::preparePlan");
+
+ // Check if plan is already deployed.
+ DomainApplicationManager_Impl * dam = 0;
+ if (0 == this->managers_.find (plan.UUID.in(), dam))
+ {
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("DomainApplicationManager with specified UUID already exists\n")));
+ // Should we return on this situation reference on existed DomainApplicationManager or
+ // we should throw PlanError exception?
+ CORBA::Object_var ref = this->poa_->servant_to_reference (dam);
+ _tao_rh->preparePlan (Deployment::DomainApplicationManager::_narrow (ref.in ()));
+ return;
+ }
+
+ try {
+ DomainApplicationManager_Impl* dam_servant_ptr = 0;
+ ACE_NEW_THROW_EX (dam_servant_ptr,
+ DAnCE::DomainApplicationManager_Impl (this->orb_.in (),
+ this->poa_.in (),
+ plan,
+ this->locator_),
+ CORBA::NO_MEMORY ());
+ DomainApplicationManager_Impl_var dam_servant (dam_servant_ptr);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Domain Application Manager was successfully created.\n")));
+
+ PreparePlanCompletionHandler* ppch = 0;
+ ACE_NEW_THROW_EX (ppch,
+ PreparePlanCompletionHandler (this,
+ _tao_rh),
+ CORBA::NO_MEMORY ());
+
+ dam_servant->preparePlan (ppch);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Domain Application Manager preparePlan has been called.\n")));
+ }
+ catch (CORBA::Exception& ex) {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Propagating CORBA exception caught here\n")));
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->preparePlan_excep (&amh_exholder);
+ }
+ catch (...) {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Propagating exception caught here\n")));
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (unknown_ex);
+ _tao_rh->preparePlan_excep (&amh_exholder);
+ }
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - finished\n")));
+}
+
+void
+ExecutionManager_Impl::finish_preparePlan (::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ DomainApplicationManager_Impl *dam_servant)
+{
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO ACE_TEXT("ExecutionManager_Impl::finish_preparePlan - ")
+ ACE_TEXT("Plan with UUID %C was successfully prepared.\n"),
+ dam_servant->getPlanUUID ()));
+
+ this->managers_.rebind (dam_servant->getPlanUUID (), dam_servant);
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (dam_servant);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::finish_preparePlan - ")
+ ACE_TEXT("Domain Application Manager was successfully activated.\n")));
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+ _tao_rh->preparePlan (Deployment::DomainApplicationManager::_narrow (ref.in ()));
+}
+
+void
+ExecutionManager_Impl::fail_preparePlan (::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ CORBA::Exception* local_ex)
+{
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO ACE_TEXT("ExecutionManager_Impl::fail_preparePlan called\n")));
+
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->preparePlan_excep (&amh_exholder);
+}
+
+void
+ExecutionManager_Impl::getManagers (::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh)
+{
+ DANCE_TRACE ( "ExecutionManager_Impl::getManagers ()");
+
+ try {
+ ::Deployment::DomainApplicationManagers_var managers;
+ ACE_NEW_THROW_EX (managers,
+ ::Deployment::DomainApplicationManagers(),
+ CORBA::NO_MEMORY());
+
+ managers->length (this->managers_.current_size());
+ CORBA::ULong index = 0;
+ for (TDomainManagers::iterator iter = this->managers_.begin();
+ iter != this->managers_.end();
+ ++iter)
+ {
+ CORBA::Object_var ref = this->poa_->servant_to_reference ( (*iter).int_id_);
+ (*managers) [index]
+ = Deployment::DomainApplicationManager::_narrow (ref.in ());
+ ++index;
+ }
+
+ _tao_rh->getManagers (managers);
+ return;
+ }
+ catch (CORBA::Exception& ex) {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->getManagers_excep (&amh_exholder);
+ }
+ catch (...) {
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (unknown_ex);
+ _tao_rh->getManagers_excep (&amh_exholder);
+ }
+}
+
+void
+ExecutionManager_Impl::destroyManager (::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ ::Deployment::DomainApplicationManager_ptr appManager)
+{
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - started\n")));
+
+ try {
+ for (TDomainManagers::iterator iter = this->managers_.begin();
+ iter != this->managers_.end();
+ ++iter)
+ {
+ CORBA::Object_var app = this->poa_->servant_to_reference ( (*iter).int_id_);
+ if (appManager->_is_equivalent (app.in ()))
+ {
+ DomainApplicationManager_Impl *dam_servant = (*iter).int_id_;
+ // create completion handler
+ DestroyManagerCompletionHandler* dmch = 0;
+ ACE_NEW_THROW_EX (dmch,
+ DestroyManagerCompletionHandler (this,
+ _tao_rh,
+ dam_servant),
+ CORBA::NO_MEMORY ());
+
+ // deregister manager
+ this->managers_.unbind ( (*iter).ext_id_);
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (appManager);
+ this->poa_->deactivate_object (id.in());
+
+ (*iter).int_id_ = 0;
+
+ // remove default ref so servant will be deleted when
+ // var in DestroyManagerCompletionHandler gets destructed
+ // at the finish of DomainApplicationManager_Impl::destroyManager
+ dam_servant->_remove_ref ();
+
+ dam_servant->destroyManager (dmch);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - ")
+ ACE_TEXT("Domain Application Manager destroyManager has been called.\n")));
+ return;
+ }
+ }
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - ")
+ ACE_TEXT("corresponding DomainApplicationManager cannot be found\n")));
+ CORBA::Exception* local_ex = new ::Deployment::StopError();
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->destroyManager_excep (&amh_exholder);
+ }
+ catch (CORBA::Exception& ex) {
+ CORBA::Exception* local_ex = ex._tao_duplicate ();
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (local_ex);
+ _tao_rh->destroyManager_excep (&amh_exholder);
+ }
+ catch (...) {
+ CORBA::Exception* unknown_ex = new CORBA::UNKNOWN;
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (unknown_ex);
+ _tao_rh->destroyManager_excep (&amh_exholder);
+ }
+}
+
+void
+ExecutionManager_Impl::add_node_manager (const char *name, const char *ior)
+{
+ DANCE_TRACE ("ExecutionManager_Impl::add_node_manager");
+ this->locator_.store_ior (name, ior);
+}
+
+void
+ExecutionManager_Impl::load_node_map (const ACE_TCHAR *filename)
+{
+ DANCE_TRACE ("ExecutionManager_Impl::add_node_manager");
+ this->locator_.process_node_map (filename);
+}
+
+ExecutionManager_Impl::PreparePlanCompletionHandler::PreparePlanCompletionHandler (
+ ExecutionManager_Impl *em_servant,
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh)
+ : em_servant_ (ExecutionManager_Impl_var::_duplicate (em_servant)),
+ em_rh_ (::Deployment::AMH_ExecutionManagerResponseHandler::_duplicate (_tao_rh))
+{
+}
+
+void
+ExecutionManager_Impl::PreparePlanCompletionHandler::handle_completion (DomainApplicationManager_Impl *dam_servant)
+{
+ this->em_servant_->finish_preparePlan (this->em_rh_.in (),
+ dam_servant);
+}
+
+void ExecutionManager_Impl::PreparePlanCompletionHandler::handle_exception (CORBA::Exception* local_ex)
+{
+ this->em_servant_->fail_preparePlan (this->em_rh_.in (),
+ local_ex);
+}
+
+ExecutionManager_Impl::DestroyManagerCompletionHandler::DestroyManagerCompletionHandler (
+ ExecutionManager_Impl *em_servant,
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ DomainApplicationManager_Impl* dam_servant)
+ : em_servant_ (ExecutionManager_Impl_var::_duplicate (em_servant)),
+ em_rh_ (::Deployment::AMH_ExecutionManagerResponseHandler::_duplicate (_tao_rh)),
+ dam_servant_ (DomainApplicationManager_Impl_var::_duplicate (dam_servant))
+{
+}
+
+void ExecutionManager_Impl::DestroyManagerCompletionHandler::handle_completion (
+ DomainApplicationManager_Impl * /*dam_servant*/)
+{
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT("ExecutionManager_Impl::DestroyManagerCompletionHandler::handle_completion - ")
+ ACE_TEXT("finished\n")));
+ em_rh_->destroyManager ();
+}
+
+void ExecutionManager_Impl::DestroyManagerCompletionHandler::handle_exception (
+ CORBA::Exception* local_ex)
+{
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("ExecutionManager_Impl::DestroyManagerCompletionHandler::handle_exception - ")
+ ACE_TEXT("propagating exception\n")));
+ ::Deployment::AMH_ExecutionManagerExceptionHolder amh_exholder (local_ex);
+ em_rh_->destroyManager_excep (&amh_exholder);
+}
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h
new file mode 100644
index 00000000000..6715eece19d
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h
@@ -0,0 +1,115 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ExecutionManager_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Implementation of Deployment::ExecutionManager and POA_DAnCE::ExecutionManagerDaemon
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef EXECUTIONMANAGER_IMPL_H_
+#define EXECUTIONMANAGER_IMPL_H_
+
+#include "ace/Map_Manager.h"
+#include "ace/SStringfwd.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+#include "Deployment/Deployment_ExecutionManagerS.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+#include "DomainApplicationManager/DomainApplicationManager_Impl.h"
+#include "DomainApplicationManager/Node_Locator.h"
+#include "Completion/CompletionHandler_T.h"
+#include "Completion/Completion_Counter_Base.h"
+
+namespace DAnCE
+ {
+ class ExecutionManager_Impl;
+
+ typedef PortableServer::Servant_var<ExecutionManager_Impl> ExecutionManager_Impl_var;
+
+ class ExecutionManager_Impl
+ : public virtual POA_Deployment::AMH_ExecutionManager
+ {
+ public:
+ ExecutionManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ CosNaming::NamingContext_ptr);
+
+ virtual ~ExecutionManager_Impl(void);
+
+ virtual void preparePlan (
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ const ::Deployment::DeploymentPlan & plan,
+ ::Deployment::ResourceCommitmentManager_ptr resourceCommitment);
+
+ virtual void getManagers (
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh);
+
+ virtual void destroyManager (
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ ::Deployment::DomainApplicationManager_ptr manager);
+
+ void add_node_manager (const char *name, const char *ior);
+
+ void load_node_map (const ACE_TCHAR *filename);
+
+ class PreparePlanCompletionHandler
+ : public CompletionHandler<DomainApplicationManager_Impl>
+ {
+ public:
+ PreparePlanCompletionHandler (
+ ExecutionManager_Impl *em_servant,
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh);
+
+ virtual void handle_completion (DomainApplicationManager_Impl *dam_servant);
+ virtual void handle_exception (CORBA::Exception* local_ex);
+
+ private:
+ ExecutionManager_Impl_var em_servant_;
+ ::Deployment::AMH_ExecutionManagerResponseHandler_var em_rh_;
+ };
+
+ class DestroyManagerCompletionHandler
+ : public CompletionHandler<DomainApplicationManager_Impl>
+ {
+ public:
+ DestroyManagerCompletionHandler (
+ ExecutionManager_Impl *em_servant,
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ DomainApplicationManager_Impl* dam_servant);
+
+ virtual void handle_completion (DomainApplicationManager_Impl *dam_servant);
+ virtual void handle_exception (CORBA::Exception* local_ex);
+
+ private:
+ ExecutionManager_Impl_var em_servant_;
+ ::Deployment::AMH_ExecutionManagerResponseHandler_var em_rh_;
+ DomainApplicationManager_Impl_var dam_servant_;
+ };
+
+ private:
+ void finish_preparePlan (
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ DomainApplicationManager_Impl *dam_servant);
+ void fail_preparePlan (
+ ::Deployment::AMH_ExecutionManagerResponseHandler_ptr _tao_rh,
+ CORBA::Exception* local_ex);
+
+ friend class PreparePlanCompletionHandler;
+
+ typedef ACE_Map_Manager<
+ ACE_CString,
+ DomainApplicationManager_Impl*,
+ ACE_Null_Mutex> TDomainManagers;
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ TDomainManagers managers_;
+ Node_Locator locator_;
+ };
+}//DAnCE
+
+#endif /*EXECUTIONMANAGER_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp
new file mode 100644
index 00000000000..94702c170d4
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp
@@ -0,0 +1,359 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+#include "tao/StringSeqC.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "ciao/Valuetype_Factories/Cookies.h"
+#include "ExecutionManager_Module.h"
+#include "ExecutionManager_Impl.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+ACE_RCSID (DAnCE,
+ DAnCE_ExecutionManager_Module,
+ "$Id$")
+
+namespace DAnCE
+{
+ namespace ExecutionManager
+ {
+ bool
+ write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
+ {
+ FILE* ior_output_file_ =
+ ACE_OS::fopen (ior_file_name, ACE_TEXT("w"));
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("ExectionManager::write_IOR - EM's ior was written into file \"%C\"\n"), ior_file_name));
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ ACE_TEXT("[%M%] DAnCE_ExecutionManager::write_ior-file - ")
+ ACE_TEXT("Unable to open ExecutionManager IOR output file %C : %m\n"),
+ ior_file_name));
+ return false;
+ }
+ return true;
+ }
+ }
+}
+
+DAnCE_ExecutionManager_Module::DAnCE_ExecutionManager_Module (void)
+ : em_impl_ (0)
+{
+}
+
+DAnCE_ExecutionManager_Module::~DAnCE_ExecutionManager_Module (void)
+{
+ delete this->em_impl_;
+}
+
+bool
+DAnCE_ExecutionManager_Module::parse_args (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_ExecutionManager_Module::parse_args");
+
+ ACE_Get_Opt get_opts (argc,
+ argv,
+ "n:e::p::c::r::ifh",
+ 0,
+ 0,
+ ACE_Get_Opt::RETURN_IN_ORDER);
+
+ get_opts.long_option (ACE_TEXT("exec-mgr"), 'e', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("node-mgr"), 'n', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("process-ns"), 'p', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("create-plan-ns"), 'c', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("rebind-plan-ns"), 'r', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("port-indirection"), 'i', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("ignore-failure"), 'f', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("node-map"), ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("domain-nc"), ACE_Get_Opt::ARG_REQUIRED);
+
+ //get_opts.long_option ("help", '?');
+
+ int c;
+ while ( (c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'e':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("Output filename is %s\n"),
+ get_opts.opt_arg ()));
+ this->options_.exec_mgr_file_ = get_opts.opt_arg ();
+ break;
+ case 'n':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--node-mgr option was parsed out for EM\n")));
+ this->options_.node_managers_.push_back (get_opts.opt_arg ());
+ break;
+
+ case 'p':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--process-ns enabled for EM\n")));
+ this->options_.process_ns_ = true;
+ this->options_.process_ns_file_ = get_opts.opt_arg ();
+ break;
+
+ case 'c':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--create-plan-ns enabled for EM\n")));
+ this->options_.create_plan_ns_ = true;
+ this->options_.create_plan_ns_ior_ = get_opts.opt_arg ();
+ break;
+
+ case 'r':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--rebind-plan-ns enabled for EM\n")));
+ this->options_.rebind_plan_ns_ = true;
+ this->options_.rebind_plan_ns_ior_ = get_opts.opt_arg ();
+ break;
+
+ case 'i':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--port-indirection enabled for EM\n")));
+ this->options_.port_indirection_ = true;
+ break;
+
+ case 'f':
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--ignore-failure enabled for EM\n")));
+ this->options_.ignore_failure_ = true;
+ break;
+
+ case 0:
+ if (ACE_OS::strcmp (get_opts.long_option (),
+ ACE_TEXT("node-map")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Found Node map filename %s.\n"),
+ get_opts.opt_arg ()));
+ this->options_.node_map_ = get_opts.opt_arg ();
+ break;
+
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (),
+ ACE_TEXT("domain-nc")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Binding to domain naming context %s.\n"),
+ get_opts.opt_arg ()));
+ this->options_.domain_nc_ = get_opts.opt_arg ();
+ break;
+ }
+
+ case 'h':
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "\t--exec-mgr,-e [execution manager ior file name]\n"
+ "\t--node-mgr,-n <node name>[=node manager ior file name]\n"
+ "\t--node-map <file name> \t\tFile containing a node manager map\n"
+ "\t--domain-nc <nc ior> \t\tIOR for the Domain Naming Context\n"
+ //"-p|--process-ns [file name] \t\tcreate process name service and store its ior to file name\n"
+ //"-c|--create-plan-ns [NC] \t\tcreate plan objects (components and ports) representation in name context with ior NC\n"
+ //"-r|--rebind-plan-ns [NC] \t\tbind plan representation name context to NC\n"
+ //"-i \t\t\t\tenable plan objects indirection via servant locator\n",
+ ,argv [0]),
+ false);
+ break;
+ }
+ }
+ return true;
+}
+
+CORBA::Object_ptr
+DAnCE_ExecutionManager_Module::init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_ExecutionManager_Module::init");
+
+ try
+ {
+ if (this->em_impl_ != 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("Error: ExecutionManager already exists.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("before parsing arguments.\n")));
+
+ if (!this->parse_args (argc, argv))
+ return CORBA::Object::_nil ();
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("before creating value factory.\n")));
+ CORBA::ValueFactory_var vf = new Components::Cookie_init();
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("before registering value factory.\n")));
+ vf = orb->register_value_factory ("IDL:omg.org/Components/Cookie:1.0", vf.in());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("after creating value factory.\n")));
+ // Get reference to Root POA.
+ CORBA::Object_var poa_obj
+ = orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var poa
+ = PortableServer::POA::_narrow (poa_obj.in ());
+
+ PortableServer::POAManager_var mgr = poa->the_POAManager ();
+ PortableServer::POA_var persistent_poa;
+ TAO::Utils::PolicyList_Destroyer policies (2);
+ policies.length (2);
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("before creating the \"Managers\" POA.\n")));
+
+ policies[0] = poa->create_id_assignment_policy (PortableServer::USER_ID);
+ policies[1] = poa->create_lifespan_policy (PortableServer::PERSISTENT);
+ persistent_poa = poa->create_POA ("Managers",
+ mgr.in(),
+ policies);
+ }
+ catch (const PortableServer::POA::AdapterAlreadyExists &)
+ {
+ persistent_poa = poa->find_POA ("Managers", 0);
+ }
+
+ CosNaming::NamingContext_var domain_nc;
+
+ // Resolve DomainNC
+ try
+ {
+ if (this->options_.domain_nc_)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("before resolving \"DomainNC\".\n")));
+ CORBA::Object_var domain_obj = orb->string_to_object (this->options_.domain_nc_);
+ if (!CORBA::is_nil (domain_obj.in ()))
+ {
+ domain_nc = CosNaming::NamingContext::_narrow (domain_obj.in());
+ if (CORBA::is_nil (domain_nc.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ DLINFO ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ }
+ catch (CORBA::Exception&)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG,
+ DLINFO ACE_TEXT("DomainNC context not found!\n")));
+ }
+
+ // Initialize IOR table
+ CORBA::Object_var table_object
+ = orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter
+ = IORTable::Table::_narrow (table_object.in ());
+
+ if (CORBA::is_nil (adapter.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ DLINFO ACE_TEXT("Nil IORTable\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ // Create and install the DAnCE Daemon servant on child POA
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - before creating EM servant.\n")));
+ ACE_NEW_RETURN (this->em_impl_,
+ DAnCE::ExecutionManager_Impl (orb,
+ poa.in (),
+ domain_nc.in ()),
+ CORBA::Object::_nil ());
+
+ // Explicit activation through the persistent POA
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId ("ExecutionManager");
+ persistent_poa->activate_object_with_id (oid, this->em_impl_);
+
+ CORBA::Object_var em_obj = persistent_poa->id_to_reference (oid.in ());
+ CORBA::String_var em_ior = orb->object_to_string (em_obj.in ());
+
+ Deployment::ExecutionManager_var em_daemon
+ = Deployment::ExecutionManager::_narrow (em_obj.in ());
+
+ // Binding ior to IOR Table
+ adapter->bind ("ExecutionManager", em_ior.in ());
+
+ // Saving execution manager ior
+ if (0 != this->options_.exec_mgr_file_)
+ {
+ DAnCE::ExecutionManager::write_IOR (this->options_.exec_mgr_file_, em_ior.in ());
+ }
+
+ // Binding execution manager to name service
+ if (!CORBA::is_nil (domain_nc.in ()))
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Registering EM in NC.\n")));
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup ("ExecutionManager");
+ domain_nc->rebind (name, em_daemon.in());
+ }
+
+ // End ExecutionManager initialization part
+
+ // Initializing NodeManagers
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("before processing --node-mgr options(%u).\n"), this->options_.node_managers_.size()));
+ for (size_t i = 0; i < this->options_.node_managers_.size(); ++i)
+ {
+ size_t const pos = this->options_.node_managers_[i].find ('=');
+ ACE_TString node_name = this->options_.node_managers_[i];
+ ACE_TString nm_ior;
+
+ if (ACE_CString::npos == pos)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("Execution manager received --node-mgr without IOR\n")));
+ continue;
+ }
+
+ node_name = this->options_.node_managers_[i].substring (0, pos);
+ nm_ior = this->options_.node_managers_[i].substring (pos + 1);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Placing node \"%s\" to EM's map.\n"), node_name.c_str()));
+ this->em_impl_->add_node_manager (ACE_TEXT_ALWAYS_CHAR(node_name.c_str()), ACE_TEXT_ALWAYS_CHAR(nm_ior.c_str ()));
+ }
+
+ if (this->options_.node_map_ != 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::init - ")
+ ACE_TEXT("Parsing node map %C\n"),
+ this->options_.node_map_));
+ this->em_impl_->load_node_map (this->options_.node_map_);
+ }
+
+
+ mgr->activate ();
+
+ return em_obj._retn ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("DAnCE_ExecutionManager::run_main\n");
+ return CORBA::Object::_nil ();
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
new file mode 100644
index 00000000000..6fe930f794f
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ExecutionManager_Module.h
+ *
+ * $Id$
+ *
+ * @brief
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef EXECUTION_MANAGER_MODULE_H
+#define EXECUTION_MANAGER_MODULE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Vector_T.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace DAnCE
+{
+ class ExecutionManager_Impl;
+}
+
+/**
+ * @class Execution_Manager_Module
+ *
+ * This class implements the execution manager instance
+ */
+class DAnCE_ExecutionManager_Module
+ {
+ public:
+ /// Constructor.
+ DAnCE_ExecutionManager_Module (void);
+
+ /// Destructor.
+ ~DAnCE_ExecutionManager_Module (void);
+
+ /// Setup our infrastructure
+ CORBA::Object_ptr init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ private:
+ bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ struct SOptions
+ {
+ const ACE_TCHAR* exec_mgr_file_;
+ bool process_ns_;
+ const ACE_TCHAR* process_ns_file_;
+ bool create_plan_ns_;
+ const ACE_TCHAR* create_plan_ns_ior_;
+ bool rebind_plan_ns_;
+ const ACE_TCHAR* rebind_plan_ns_ior_;
+ bool port_indirection_;
+ ACE_Vector<ACE_TString> node_managers_;
+ bool ignore_failure_;
+ const ACE_TCHAR *node_map_;
+ const ACE_TCHAR *domain_nc_;
+
+ SOptions()
+ : exec_mgr_file_ (0),
+ process_ns_ (false),
+ process_ns_file_ (0),
+ create_plan_ns_ (false),
+ create_plan_ns_ior_ (0),
+ rebind_plan_ns_ (false),
+ rebind_plan_ns_ior_ (0),
+ ignore_failure_ (false),
+ node_map_(0),
+ domain_nc_ (0)
+ {
+ }
+ };
+
+ SOptions options_;
+
+ /// Storage for ExecutionManager servant.
+ DAnCE::ExecutionManager_Impl * em_impl_;
+ };
+
+#include /**/ "ace/post.h"
+
+#endif /* EXECUTION_MANAGER_MODULE_H */
+
diff --git a/modules/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp b/modules/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp
new file mode 100644
index 00000000000..878db84fffe
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "ExecutionManager_Module.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("ExecutionManager - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("ExecutionManager - initializing module instance\n")));
+
+ DAnCE_ExecutionManager_Module em;
+ CORBA::Object_var obj = em.init (orb.in (), argc, argv);
+
+ if (!CORBA::is_nil (obj.in ()))
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("ExecutionManager - running ORB\n")));
+ orb->run ();
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("ExecutionManager - destroying ORB\n")));
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("ExecutionManager");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "ExecutionManager - Error: Unknown exception.\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
+
diff --git a/modules/CIAO/DAnCE/Logger/DAnCE_Logger_Export.h b/modules/CIAO/DAnCE/Logger/DAnCE_Logger_Export.h
new file mode 100644
index 00000000000..e8e7cb3c81a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/DAnCE_Logger_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_Logger
+// ------------------------------
+#ifndef DANCE_LOGGER_EXPORT_H
+#define DANCE_LOGGER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_LOGGER_HAS_DLL)
+# define DANCE_LOGGER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_LOGGER_HAS_DLL */
+
+#if !defined (DANCE_LOGGER_HAS_DLL)
+# define DANCE_LOGGER_HAS_DLL 1
+#endif /* ! DANCE_LOGGER_HAS_DLL */
+
+#if defined (DANCE_LOGGER_HAS_DLL) && (DANCE_LOGGER_HAS_DLL == 1)
+# if defined (DANCE_LOGGER_BUILD_DLL)
+# define DAnCE_Logger_Export ACE_Proper_Export_Flag
+# define DANCE_LOGGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_LOGGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_LOGGER_BUILD_DLL */
+# define DAnCE_Logger_Export ACE_Proper_Import_Flag
+# define DANCE_LOGGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_LOGGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_LOGGER_BUILD_DLL */
+#else /* DANCE_LOGGER_HAS_DLL == 1 */
+# define DAnCE_Logger_Export
+# define DANCE_LOGGER_SINGLETON_DECLARATION(T)
+# define DANCE_LOGGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_LOGGER_HAS_DLL == 1 */
+
+// Set DANCE_LOGGER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_LOGGER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_LOGGER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_LOGGER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_LOGGER_NTRACE */
+
+#if (DANCE_LOGGER_NTRACE == 1)
+# define DANCE_LOGGER_TRACE(X)
+#else /* (DANCE_LOGGER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_LOGGER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_LOGGER_NTRACE == 1) */
+
+#endif /* DANCE_LOGGER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Logger/Log_Macros.cpp b/modules/CIAO/DAnCE/Logger/Log_Macros.cpp
new file mode 100644
index 00000000000..212a14111aa
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Log_Macros.cpp
@@ -0,0 +1,6 @@
+// $Id$
+
+#include "Log_Macros.h"
+
+DAnCE_Logger_Export unsigned int DAnCE_debug_level = 0;
+
diff --git a/modules/CIAO/DAnCE/Logger/Log_Macros.h b/modules/CIAO/DAnCE/Logger/Log_Macros.h
new file mode 100644
index 00000000000..af57d8ccccc
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Log_Macros.h
@@ -0,0 +1,100 @@
+/**
+ * @file Log_Macros.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * // $Id$
+ * Macros used for logging in DAnCE
+ */
+
+
+#ifndef DANCE_LOG_MACROS_H_
+#define DANCE_LOG_MACROS_H_
+
+#include "DAnCE_Logger_Export.h"
+
+#if !defined (DLINFO)
+# define DLINFO ACE_TEXT("(%P|%t) [%M] - %T - ")
+#endif
+
+extern DAnCE_Logger_Export unsigned int DAnCE_debug_level;
+
+// By default tracing is turned off.
+#if !defined (DANCE_NTRACE)
+# define DANCE_NTRACE 1
+#endif /* DANCE_NTRACE */
+
+#if (DANCE_NTRACE == 1)
+# if !defined (ACE_NTRACE)
+# define DANCE_TRACE(X) do {} while (0)
+# define DANCE_ENABLE_TRACE() do {} while (0)
+# define DANCE_DISABLE_TRACE() do {} while (0)
+# else
+# if (ACE_NTRACE == 0)
+# error DANCE_TRACE cannot be disabled if ACE_TRACE is enabled
+# else
+# define DANCE_TRACE(X) do {} while (0)
+# define DANCE_ENABLE_TRACE() do {} while (0)
+# define DANCE_DISABLE_TRACE() do {} while (0)
+# endif
+# endif
+#else
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_TRACE(X) ACE_TRACE_IMPL (X)
+# define DANCE_ENABLE_TRACE() ACE_Trace::start_tracing ()
+# define DANCE_DISABLE_TRACE() ACE_Trace::stop_tracing ()
+# undef DLINFO // Make log messages indent with tracing.
+# define DLINFO ACE_TEXT("%I(%P|%t) [%M] - %T - ")
+# include "ace/Trace.h"
+#endif /* DANCE_NTRACE */
+
+#if defined (DANCE_NLOGGING)
+# define DANCE_ERROR(L, X) do {} while (0)
+# define DANCE_DEBUG(L, X) do {} while (0)
+#define DANCE_ERROR_RETURN(L, X, Y) return (Y)
+#define DANCE_ERROR_BREAK(L, X) { break; }
+#else
+# if !defined (DANCE_ERROR)
+# define DANCE_ERROR(L, X) \
+ do { \
+ if (DAnCE_debug_level >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, -1, __ace_error); \
+ ace___->log X; \
+ } \
+ } while (0)
+# endif
+# if !defined (DANCE_DEBUG)
+# define DANCE_DEBUG(L, X) \
+ do { \
+ if (DAnCE_debug_level >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, 0, __ace_error); \
+ ace___->log X; \
+ } \
+ } while (0)
+# endif
+# if !defined (DANCE_ERROR_RETURN)
+# define DANCE_ERROR_RETURN(L, X, Y) \
+ do { \
+ if (DAnCE_debug_level >= L) \
+ { \
+ int const __ace_error = ACE_Log_Msg::last_error_adapter (); \
+ ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
+ ace___->conditional_set (__FILE__, __LINE__, Y, __ace_error); \
+ ace___->log X; \
+ return Y; \
+ } \
+ } while (0)
+# endif
+# if !defined (DANCE_ERROR_BREAK)
+# define DANCE_ERROR_BREAK(L, X) { DANCE_ERROR (L, X); break; }
+# endif
+#endif
+
+
+#endif
diff --git a/modules/CIAO/DAnCE/Logger/Logger.mpc b/modules/CIAO/DAnCE/Logger/Logger.mpc
new file mode 100644
index 00000000000..649d5ff71fc
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Logger.mpc
@@ -0,0 +1,16 @@
+// -*- MPC -*-
+// $Id$
+
+project(DAnCE_Logger): dance_lib, taolib, acelib {
+ sharedname = DAnCE_Logger
+ dynamicflags = DANCE_LOGGER_BUILD_DLL
+
+ Source_Files {
+ Logger_Service.cpp
+ Log_Macros.cpp
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/DAnCE/Logger/Logger_Service.cpp b/modules/CIAO/DAnCE/Logger/Logger_Service.cpp
new file mode 100644
index 00000000000..44f8cffa2c3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Logger_Service.cpp
@@ -0,0 +1,149 @@
+// $Id$
+#include "Logger_Service.h"
+#include "ace/Get_Opt.h"
+#include "ace/Env_Value_T.h"
+#include "ace/CORBA_macros.h"
+#include "tao/SystemException.h"
+#include "Log_Macros.h"
+#include "ace/Service_Config.h"
+#include "ace/Arg_Shifter.h"
+
+#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
+// Needed to set ACE_LOG_MSG::msg_ostream()
+// FUZZ: disable check_for_streams_include
+# include "ace/streams.h"
+#endif /* !ACE_LACKS_IOSTREAM_TOTALLY */
+
+namespace DAnCE
+ {
+ Logger_Service::Logger_Service (void)
+ : filename_ (ACE_TEXT("")),
+ trace_ (false)
+ {
+ }
+
+ int
+ Logger_Service::init (int argc, ACE_TCHAR * argv[])
+ {
+ // Get prospective values from the environment first, those given on
+ // command line can override
+ ACE_Env_Value<int> log (ACE_TEXT("DANCE_LOG_LEVEL"), DAnCE_debug_level);
+ DAnCE_debug_level = log;
+
+ ACE_Env_Value<int> trace (ACE_TEXT("DANCE_TRACE_ENABLE"), 0);
+ this->trace_ = (trace != 0);
+
+ ACE_Env_Value<const ACE_TCHAR *> filename (ACE_TEXT("DANCE_LOG_FILE"), this->filename_.c_str ());
+ this->filename_ = filename;
+
+ this->parse_args (argc, argv);
+
+ if (this->trace_)
+ {
+ DANCE_ENABLE_TRACE ();
+ }
+ else
+ {
+ DANCE_DISABLE_TRACE ();
+ }
+
+ if (this->filename_.length () > 0)
+ {
+#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
+
+ FILE* output_stream = ACE_OS::fopen (this->filename_.c_str (), ACE_TEXT ("a"));
+
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+
+#else /* ! ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ofstream* output_stream = 0;
+
+ //
+ // note: we are allocating dynamic memory here....but
+ // I assume it will persist for the life of the program
+ //
+
+ ACE_NEW_THROW_EX (output_stream,
+ ofstream (),
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ 0,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+
+ output_stream->open (ACE_TEXT_ALWAYS_CHAR (this->filename_.c_str ()),
+ ios::out | ios::app);
+
+ if (!output_stream->bad ())
+ {
+ ACE_LOG_MSG->msg_ostream (output_stream, 1);
+ }
+
+#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
+
+ ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER);
+ ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
+ }
+
+ return 0;
+ }
+
+ void
+ Logger_Service::parse_args (int argc, ACE_TCHAR **argv)
+ {
+ DANCE_TRACE ("Logger_Service::parse_args");
+
+ ACE_Arg_Shifter arg_shifter (argc, argv);
+
+ while (arg_shifter.is_anything_left ())
+ {
+ const ACE_TCHAR *current_arg = 0;
+ if (0 != (current_arg =
+ arg_shifter.get_the_parameter
+ (ACE_TEXT ("-DAnCELogLevel"))))
+ {
+ DAnCE_debug_level = ACE_OS::atoi (current_arg);
+
+ arg_shifter.consume_arg ();
+ }
+ else if (0 == arg_shifter.cur_arg_strncasecmp
+ (ACE_TEXT ("-DAnCETraceEnable")))
+ {
+ this->trace_ = true;
+
+ arg_shifter.consume_arg ();
+ }
+ else if (0 != (current_arg =
+ arg_shifter.get_the_parameter
+ (ACE_TEXT ("-DAnCELogFile"))))
+ {
+ this->filename_ = current_arg;
+
+ arg_shifter.consume_arg ();
+ }
+ else
+ {
+ // Can't interpret this argument. Move on to the next
+ // argument. Any arguments that don't match are ignored
+ // so that the caller can still use them.
+ arg_shifter.ignore_arg ();
+ }
+ }
+ }
+
+ int
+ Logger_Service::Initializer (void)
+ {
+ return ACE_Service_Config::process_directive (ace_svc_desc_DANCE_LOGGER_SERVICE);
+ }
+} // DAnCE
+
+ACE_STATIC_SVC_DEFINE (DANCE_LOGGER_SERVICE,
+ ACE_TEXT ("DAnCE_Logger"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (DANCE_LOGGER_SERVICE),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
+ACE_FACTORY_DEFINE (DAnCE_Logger, DANCE_LOGGER_SERVICE)
+
diff --git a/modules/CIAO/DAnCE/Logger/Logger_Service.h b/modules/CIAO/DAnCE/Logger/Logger_Service.h
new file mode 100644
index 00000000000..a6b3d58980e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Logger_Service.h
@@ -0,0 +1,33 @@
+// $Id$
+#ifndef LOGGER_SERVICE_H_
+#define LOGGER_SERVICE_H_
+
+#include "DAnCE/Logger/DAnCE_Logger_Export.h"
+#include "ace/Service_Object.h"
+
+namespace DAnCE
+{
+ class DAnCE_Logger_Export Logger_Service : public ACE_Service_Object
+ {
+ public:
+ Logger_Service (void);
+ virtual int init (int argc, ACE_TCHAR * argv[]);
+
+ static int Initializer (void);
+ private:
+ void parse_args (int argc, ACE_TCHAR **argv);
+
+ ACE_TString filename_;
+ bool trace_;
+ };
+}
+
+static int TAO_Requires_DAnCE_Logger_Service_Initializer =
+ DAnCE::Logger_Service::Initializer ();
+
+typedef DAnCE::Logger_Service DANCE_LOGGER_SERVICE;
+
+ACE_STATIC_SVC_DECLARE (DANCE_LOGGER_SERVICE)
+ACE_FACTORY_DECLARE (DAnCE_Logger, DANCE_LOGGER_SERVICE)
+
+#endif /*LOGGER_SERVICE_H_*/
diff --git a/modules/CIAO/DAnCE/MPC/config/dance.mpb b/modules/CIAO/DAnCE/MPC/config/dance.mpb
new file mode 100644
index 00000000000..6a72bc480e6
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ includes += $(CIAO_ROOT) $(CIAO_ROOT)/DAnCE
+ libpaths += $(ACE_ROOT)/lib
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager.mpb b/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager.mpb
new file mode 100644
index 00000000000..2efbefc46f0
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, naming, dance_applicationmanager_skel {
+ after += ApplicationManager
+ libs += DAnCE_ApplicationManager
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_skel.mpb
new file mode 100644
index 00000000000..9599fca3fb6
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_applicationmanager_stub {
+ after += Deployment_AM_skel
+ libs += DAnCE_ApplicationManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_stub.mpb
new file mode 100644
index 00000000000..b945eb28e5b
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_applicationmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub {
+ after += Deployment_AM_stub
+ libs += DAnCE_ApplicationManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_config_handlers.mpb b/modules/CIAO/DAnCE/MPC/config/dance_config_handlers.mpb
new file mode 100644
index 00000000000..ded1a7ed6ff
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_config_handlers.mpb
@@ -0,0 +1,21 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_config_handlers_base, dynamicany, typecodefactory, dance_deployment_stub, dance_logger {
+ verbatim(gnuace, macros) {
+ override no_hidden_visibility = 1
+ }
+ after += CIAO_XML_Utils \
+ XSC_DynAny_Handler \
+ XSC_Config_Handlers \
+ XSC_XML_Handlers \
+ Package_Config_Handlers \
+ XSC_Config_Handlers_Common
+
+ libs += CIAO_XML_Utils \
+ XSC_Config_Handlers \
+ Package_Config_Handlers \
+ XSC_XML_Handlers \
+ XSC_Config_Handlers_Common \
+ XSC_DynAny_Handler
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_config_handlers_base.mpb b/modules/CIAO/DAnCE/MPC/config/dance_config_handlers_base.mpb
new file mode 100644
index 00000000000..51a99714ae1
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_config_handlers_base.mpb
@@ -0,0 +1,13 @@
+// $Id$
+
+project : ciao_xml_utils, dynamicany, typecodefactory, exceptions {
+ after += XSC_XML_Handlers
+ libs += XSC_XML_Handlers
+ macros += XML_USE_PTHREADS
+ includes += $(DANCE_ROOT)/Config_Handlers
+
+ verbatim(gnuace, macros) {
+ override no_hidden_visibility = 1
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_convert_plan.mpb b/modules/CIAO/DAnCE/MPC/config/dance_convert_plan.mpb
new file mode 100644
index 00000000000..9a6306ee3e4
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_convert_plan.mpb
@@ -0,0 +1,6 @@
+// $Id$
+project : dance_config_handlers, dance_deployment_stub, dance_tools {
+ after += DAnCE_Convert_Plan
+ libs += DAnCE_Convert_Plan
+
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_deployment_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_deployment_skel.mpb
new file mode 100644
index 00000000000..8415b661cc2
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_deployment_skel.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, portableserver {
+ after += Deployment_skel
+ libs += DAnCE_Deployment_skel
+ idlflags += -I$(CIAO_ROOT)/DAnCE
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_deployment_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_deployment_stub.mpb
new file mode 100644
index 00000000000..2b0c8379399
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_deployment_stub.mpb
@@ -0,0 +1,10 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub, messaging {
+ after += Deployment_stub
+ libs += DAnCE_Deployment_stub
+ includes += $(CIAO_ROOT)/DAnCE
+ idlflags += -I$(CIAO_ROOT)/DAnCE
+ requires += threads
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_domainapplication.mpb b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication.mpb
new file mode 100644
index 00000000000..44fa433ef79
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_domainapplication_skel, dance_logger, dance_nodeapplication_stub, dance_nodemanager_stub, dance_nodemanager_stub {
+ after += DomainApplication
+ libs += DAnCE_DomainApplication
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_skel.mpb
new file mode 100644
index 00000000000..618687240db
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_domainapplication_stub {
+ after += Deployment_DomainApplication_skel
+ libs += DAnCE_DomainApplication_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_stub.mpb
new file mode 100644
index 00000000000..5e4e4b0300b
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub {
+ after += Deployment_DomainApplication_stub
+ libs += DAnCE_DomainApplication_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager.mpb b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager.mpb
new file mode 100644
index 00000000000..f6d3d24690a
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_domainapplication, naming, dance_domainapplicationmanager_skel, dance_split_plan {
+ after += DomainApplicationManager
+ libs += DAnCE_DomainApplicationManager
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb
new file mode 100644
index 00000000000..4c5746405e8
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_applicationmanager_skel, dance_domainapplicationmanager_stub {
+ after += Deployment_DAM_skel
+ libs += DAnCE_DomainApplicationManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb
new file mode 100644
index 00000000000..8b672987f66
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_applicationmanager_stub {
+ after += Deployment_DAM_stub
+ libs += DAnCE_DomainApplicationManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_exe.mpb b/modules/CIAO/DAnCE/MPC/config/dance_exe.mpb
new file mode 100644
index 00000000000..0613cfbb41b
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_exe.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance {
+ install = $(DANCE_ROOT)/bin
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_skel.mpb
new file mode 100644
index 00000000000..f486efb83b1
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_executionmanager_stub {
+ after += Deployment_ExecutionManager_skel
+ libs += DAnCE_ExecutionManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_stub.mpb
new file mode 100644
index 00000000000..63c1524e6f3
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub, dance_domainapplicationmanager_stub {
+ libs += DAnCE_ExecutionManager_stub
+ after += Deployment_ExecutionManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_lib.mpb b/modules/CIAO/DAnCE/MPC/config/dance_lib.mpb
new file mode 100644
index 00000000000..9c1c1bd4640
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_lib.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance {
+ libout = $(ACE_ROOT)/lib
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_logger.mpb b/modules/CIAO/DAnCE/MPC/config/dance_logger.mpb
new file mode 100644
index 00000000000..223a0bb0058
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_logger.mpb
@@ -0,0 +1,7 @@
+// $Id$
+// -*- MPC -*-
+
+project : dance, acelib {
+ after += DAnCE_Logger
+ libs += DAnCE_Logger
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb
new file mode 100644
index 00000000000..a6d521290eb
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_nodeapplication_skel, dance_logger, \
+ ciao_cs_client, ciao_componentserver_stub, dynamicinterface, iortable, naming {
+ after += DAnCE_NodeApplication
+ libs += DAnCE_NodeApplication
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_skel.mpb
new file mode 100644
index 00000000000..bbbcd44505d
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_nodeapplication_stub {
+ after += Deployment_NodeApplication_skel
+ libs += DAnCE_NodeApplication_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_stub.mpb
new file mode 100644
index 00000000000..6d51121c5cd
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub {
+ after += Deployment_NodeApplication_stub
+ libs += DAnCE_NodeApplication_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager.mpb
new file mode 100644
index 00000000000..4954f545d50
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_nodeapplication, dance_nodeapplicationmanager_skel {
+ after += DAnCE_NodeApplicationManager
+ libs += DAnCE_NodeApplicationManager
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb
new file mode 100644
index 00000000000..45215de0150
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_applicationmanager_skel, dance_nodeapplicationmanager_stub {
+ after += Deployment_NAM_skel
+ libs += DAnCE_NodeApplicationManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb
new file mode 100644
index 00000000000..c080ca58472
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_applicationmanager_stub {
+ after += Deployment_NAM_stub
+ libs += DAnCE_NodeApplicationManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_skel.mpb
new file mode 100644
index 00000000000..f628d49dbbd
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_nodemanager_stub {
+ after += Deployment_NodeManager_skel
+ libs += DAnCE_NodeManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_stub.mpb
new file mode 100644
index 00000000000..80736c251ed
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, dance_targetmanager_stub, dance_nodeapplicationmanager_stub {
+ libs += DAnCE_NodeManager_stub
+ after += Deployment_NodeManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_output.mpb b/modules/CIAO/DAnCE/MPC/config/dance_output.mpb
new file mode 100644
index 00000000000..f8352a6ac48
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_output.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ libout = $(ACE_ROOT)/lib
+}
+
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_plan_launcher.mpb b/modules/CIAO/DAnCE/MPC/config/dance_plan_launcher.mpb
new file mode 100644
index 00000000000..40c4a45c2d3
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_plan_launcher.mpb
@@ -0,0 +1,11 @@
+// $Id$
+project : dance_logger, dance_convert_plan, \
+ dance_executionmanager_stub, \
+ dance_domainapplicationmanager_stub, \
+ dance_domainapplication_stub, \
+ dance_nodemanager_stub, \
+ dance_nodeapplicationmanager_stub, \
+ dance_nodeapplication_stub {
+ after += DAnCE_Plan_Launcher_Impl
+ libs += DAnCE_Plan_Launcher_Impl
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_skel.mpb
new file mode 100644
index 00000000000..3e07d0d223c
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_repositorymanager_stub {
+ after += Deployment_RepositoryManager_skel
+ libs += DAnCE_RepositoryManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_stub.mpb
new file mode 100644
index 00000000000..e0d47b1e8fc
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub {
+ libs += DAnCE_RepositoryManager_stub
+ after += Deployment_RepositoryManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_repositorymanagerbase.mpb b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanagerbase.mpb
new file mode 100644
index 00000000000..b9dc96c12c9
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanagerbase.mpb
@@ -0,0 +1,9 @@
+// -*- MPC -*-
+// $Id$
+
+feature(jaws) {
+ includes += $(ACE_ROOT)/apps
+ libs += JAWS
+ after += JAWS
+ macros += DANCE_RM_USES_JAWS
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_split_plan.mpb b/modules/CIAO/DAnCE/MPC/config/dance_split_plan.mpb
new file mode 100644
index 00000000000..7dca6a02e25
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_split_plan.mpb
@@ -0,0 +1,6 @@
+// $Id$
+
+project : dance, dance_deployment_stub, dance_tools {
+ after += DAnCE_Split_Plan_Impl
+ libs += DAnCE_Split_Plan_Impl
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_skel.mpb
new file mode 100644
index 00000000000..6256d31121b
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_skel, dance_targetmanager_stub {
+ after += Deployment_TargetManager_skel
+ libs += DAnCE_TargetManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_stub.mpb
new file mode 100644
index 00000000000..5b42c9188fe
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub {
+ libs += DAnCE_TargetManager_stub
+ after += Deployment_TargetManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_tools.mpb b/modules/CIAO/DAnCE/MPC/config/dance_tools.mpb
new file mode 100644
index 00000000000..411d44a2223
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_tools.mpb
@@ -0,0 +1,4 @@
+// $Id$
+project : dance {
+ includes += $(DANCE_ROOT)/tools
+}
diff --git a/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp b/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
new file mode 100644
index 00000000000..21783684313
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
@@ -0,0 +1,61 @@
+// $Id$
+
+#include "tao/DynamicInterface/Request.h"
+
+#include "ComponentAttributesSetter.h"
+#include "tao/DynamicInterface/DII_CORBA_methods.h"
+#include "tao/DynamicInterface/Context.h"
+#include "tao/AnyTypeCode/NVList.h"
+#include "tao/AnyTypeCode/TypeCode_Constants.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Deployment/Deployment_ApplicationC.h"
+
+ComponentAttributesSetter::ComponentAttributesSetter()
+{
+}
+
+ComponentAttributesSetter::~ComponentAttributesSetter()
+{
+}
+
+void
+ComponentAttributesSetter::SetComponentAttributes (ACE_CString /*componentName*/,
+ ::CORBA::Object_ptr obj,
+ const Deployment::Properties& prop,
+ CORBA::ORB_ptr )
+{
+ DANCE_TRACE ("ComponentAttributesSetter::SetComponentAttributes");
+
+ for (CORBA::ULong i = 0; i < prop.length(); i++)
+ {
+ ACE_CString const name = prop[i].name.in();
+
+ // Ignore configuration properties, since attributes can't have . in them, this seems like a good method.
+ if (name.find (".") != ACE_CString::npos)
+ {
+ continue;
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("ComponentAttributesSetter::SetComponentAttributes - ")
+ ACE_TEXT("Populating attribute name <%C>\n"), name.c_str()));
+ ACE_CString method = "_set_";
+ method += prop[i].name.in();
+
+ try
+ {
+ ::CORBA::Request_var req = obj->_request (method.c_str ());
+ req->add_in_arg ("x") = prop[i].value;
+ req->invoke();
+ }
+ catch (const CORBA::Exception &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("ComponentAttributesSetter::SetComponentAttributes - ")
+ ACE_TEXT("ERROR: Exception while trying to set attribute <%C>\n"),
+ name.c_str ()));
+ e._tao_print_exception ("ComponentAttributesSetter.cpp::SetComponentAttributes - ");
+ throw ::Deployment::StartError();
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.h b/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.h
new file mode 100644
index 00000000000..06b125ad559
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.h
@@ -0,0 +1,33 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ComponentAttributesSetter.h
+ *
+ * $Id$
+ *
+ * @brief Workaround for component attributes setting
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef COMPONENTATTRIBUTESSETTER_H_
+#define COMPONENTATTRIBUTESSETTER_H_
+
+#include "NodeApplication_Export.h"
+#include "Deployment/Deployment_BaseC.h"
+
+class NodeApplication_Export ComponentAttributesSetter
+ {
+ public:
+ ComponentAttributesSetter();
+ ~ComponentAttributesSetter();
+
+ static void SetComponentAttributes (ACE_CString componentName,
+ CORBA::Object_ptr,
+ const Deployment::Properties& prop,
+ CORBA::ORB_ptr orb);
+ };
+
+#endif /*COMPONENTATTRIBUTESSETTER_H_*/
diff --git a/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp b/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp
new file mode 100644
index 00000000000..258584aeb40
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp
@@ -0,0 +1,179 @@
+// $Id$
+
+#include "Name_Utilities.h"
+
+#include "ace/Auto_Ptr.h"
+#include "ace/SString.h"
+#include "ace/Tokenizer_T.h"
+#include "Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+ namespace Name_Utilities {
+ bool
+ write_ior (const ACE_TCHAR *file, const char *ior)
+ {
+ FILE* ior_output_file_ = ACE_OS::fopen (file, "w");
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ return true;
+ }
+ return false;
+ }
+
+ bool
+ bind_object (const char *name,
+ CORBA::Object_ptr obj,
+ CosNaming::NamingContext_ptr ctx)
+ {
+ DANCE_TRACE ("Name_Utilities::bind_object");
+
+ if (CORBA::is_nil (ctx))
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Provided naming context is nil, component %C will not be registered."),
+ name));
+ return false;
+ }
+
+ try
+ {
+ CosNaming::Name nm;
+
+ Name_Utilities::build_name (name, nm);
+
+ if (nm.length () == 0)
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("build_name resulted in an invalid name for string %C\n"),
+ name));
+ return false;
+ }
+
+ Name_Utilities::bind_context (nm, ctx);
+
+ try
+ {
+ ctx->bind (nm, obj);
+ }
+ catch (const CosNaming::NamingContext::AlreadyBound &)
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Name %C already bound, rebinding....\n"),
+ name));
+ ctx->rebind (nm, obj);
+ }
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Caught CORBA exception while attempting to bind name %C: %C\n"),
+ name, ex._info ().c_str ()));
+ return false;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Caught unknown C++ exception while attemptint to bind name %C\n"),
+ name));
+ return false;
+ }
+
+ return true;
+ }
+
+ void
+ bind_context (CosNaming::Name &nm,
+ CosNaming::NamingContext_ptr ctx)
+ {
+ DANCE_TRACE ("Name_Utilities::bind_context");
+
+ if (CORBA::is_nil (ctx))
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Provided naming context is nil, the naming context will not be bound.")));
+ }
+
+ CosNaming::Name newname (nm.length ());
+
+ for (CORBA::ULong i = 0;
+ i < (nm.length () - 1); ++i)
+ {
+ newname.length (i + 1);
+ newname[i] = nm[i];
+
+ try
+ {
+ ctx->bind_new_context (newname);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Bound new context %C\n"), newname[i].id.in ()));
+ }
+ catch (CosNaming::NamingContext::AlreadyBound &)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Context %C already bound.\n"), newname[i].id.in ()));
+ }
+ }
+ }
+
+ bool
+ unbind_object (const char *name,
+ CosNaming::NamingContext_ptr ctx)
+ {
+ DANCE_TRACE ("Name_Utilities::unbind_object");
+
+ if (CORBA::is_nil (ctx))
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::unbind_object - ")
+ ACE_TEXT("Provided naming context is nil, instance %C will not be unbound\n"),
+ name));
+ }
+
+ CosNaming::Name nm;
+ Name_Utilities::build_name (name, nm);
+
+ try
+ {
+ ctx->unbind (nm);
+ }
+ catch (CORBA::Exception &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Name_Utilities::unbind_object - ")
+ ACE_TEXT("Caught CORBA exception whilst unbinding name %C: %C\n"),
+ name, e._info ().c_str ()));
+ return false;
+ }
+ return true;
+ }
+
+ void
+ build_name (const char *name,
+ CosNaming::Name &nm)
+ {
+ DANCE_TRACE ("Name_Utilities::build_name");
+
+ /*ACE_Auto_Basic_Array_Ptr<ACE_TCHAR>*/ char *safe_array (new char[ACE_OS::strlen (name) + 1]);
+
+ ACE_Tokenizer_T<char> parser (ACE_OS::strcpy (safe_array/*.get ()*/, name));
+ parser.delimiter ('/');
+
+ char *next (0);
+
+ while ((next = parser.next ()) != 0)
+ {
+ CORBA::ULong i = nm.length ();
+ nm.length (i + 1);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::build_name - ")
+ ACE_TEXT("Found name component %C\n"),
+ next));
+
+ nm[i].id = CORBA::string_dup (next);
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.h b/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.h
new file mode 100644
index 00000000000..2685ee36012
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.h
@@ -0,0 +1,40 @@
+/**
+ * @file Name_Utilities.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * // $Id$
+ * A set of utility methods to manages references.
+ *
+ */
+
+#ifndef NAME_UTILITIES_H
+#define NAME_UTILITIES_H
+
+#include "orbsvcs/CosNamingC.h"
+
+namespace DAnCE
+{
+ namespace Name_Utilities
+ {
+ /// Write IOR to named file. Will overwrite file if present.
+ bool write_ior (const ACE_TCHAR *file, const char *ior);
+
+ /// Binds object to provided name, which may be formatted with / to indicate
+ /// naming contexts, e.g. A/B/C.
+ bool bind_object (const char *name,
+ CORBA::Object_ptr obj,
+ CosNaming::NamingContext_ptr);
+
+ /// Will unbind the provided name.
+ bool unbind_object (const char *name,
+ CosNaming::NamingContext_ptr);
+
+ void bind_context (CosNaming::Name &nm,
+ CosNaming::NamingContext_ptr);
+
+ void build_name (const char *nm,
+ CosNaming::Name &);
+
+ }
+}
+
+#endif /* NAME_UTILITIES_H */
diff --git a/modules/CIAO/DAnCE/NodeApplication/NodeApplication.mpc b/modules/CIAO/DAnCE/NodeApplication/NodeApplication.mpc
new file mode 100644
index 00000000000..bad69ff1e92
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication.mpc
@@ -0,0 +1,25 @@
+// -*- MPC -*-
+// $Id$
+
+project(DAnCE_NodeApplication): dance_lib, dynamicinterface, \
+ dance_nodeapplication_skel, \
+ dance_logger, iortable, naming, ccm_configvalue, ciao_cs_client, ciao_componentserver_stub, \
+ gen_ostream, avoids_ace_for_tao, dance_applicationmanager_stub {
+ sharedname = DAnCE_NodeApplication
+ dynamicflags = NODEAPPLICATION_BUILD_DLL
+
+ Source_Files {
+ NodeApplication_Impl.cpp
+ ComponentAttributesSetter.cpp
+ Name_Utilities.cpp
+ }
+
+ Header_Files {
+ NodeApplication_Impl.h
+ ComponentAttributesSetter.h
+ Name_Utilities.h
+ }
+}
+
+
+
diff --git a/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Export.h b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Export.h
new file mode 100644
index 00000000000..bf2c6d7a5cb
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl NodeApplication
+// ------------------------------
+#ifndef NODEAPPLICATION_EXPORT_H
+#define NODEAPPLICATION_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (NODEAPPLICATION_HAS_DLL)
+# define NODEAPPLICATION_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && NODEAPPLICATION_HAS_DLL */
+
+#if !defined (NODEAPPLICATION_HAS_DLL)
+# define NODEAPPLICATION_HAS_DLL 1
+#endif /* ! NODEAPPLICATION_HAS_DLL */
+
+#if defined (NODEAPPLICATION_HAS_DLL) && (NODEAPPLICATION_HAS_DLL == 1)
+# if defined (NODEAPPLICATION_BUILD_DLL)
+# define NodeApplication_Export ACE_Proper_Export_Flag
+# define NODEAPPLICATION_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define NODEAPPLICATION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* NODEAPPLICATION_BUILD_DLL */
+# define NodeApplication_Export ACE_Proper_Import_Flag
+# define NODEAPPLICATION_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define NODEAPPLICATION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* NODEAPPLICATION_BUILD_DLL */
+#else /* NODEAPPLICATION_HAS_DLL == 1 */
+# define NodeApplication_Export
+# define NODEAPPLICATION_SINGLETON_DECLARATION(T)
+# define NODEAPPLICATION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* NODEAPPLICATION_HAS_DLL == 1 */
+
+// Set NODEAPPLICATION_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (NODEAPPLICATION_NTRACE)
+# if (ACE_NTRACE == 1)
+# define NODEAPPLICATION_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define NODEAPPLICATION_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !NODEAPPLICATION_NTRACE */
+
+#if (NODEAPPLICATION_NTRACE == 1)
+# define NODEAPPLICATION_TRACE(X)
+#else /* (NODEAPPLICATION_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define NODEAPPLICATION_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (NODEAPPLICATION_NTRACE == 1) */
+
+#endif /* NODEAPPLICATION_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
new file mode 100644
index 00000000000..23e44d52add
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
@@ -0,0 +1,2365 @@
+// $Id$
+#include "NodeApplication_Impl.h"
+
+#include "ace/OS_Memory.h"
+
+#include "ace/streams.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "tao/Object.h"
+#include "tao/ORB.h"
+#include "ccm/CCM_ObjectC.h"
+#include "ccm/CCM_SessionComponentC.h"
+#include "ciao/Valuetype_Factories/ConfigValue.h"
+#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h"
+#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h"
+#include "ciao/ComponentServer/CIAO_PropertiesC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Deployment/Deployment_BaseC.h"
+#include "Deployment/Deployment_ApplicationC.h"
+#include "Deployment/Deployment_PlanErrorC.h"
+#include "Deployment/Deployment_ApplicationManagerC.h"
+#include "DAnCE/Deployment_common.h"
+#include "DAnCE/DAnCE_PropertiesC.h"
+#include "ComponentAttributesSetter.h"
+#include "Name_Utilities.h"
+
+#include <string>
+
+#ifdef GEN_OSTREAM_OPS
+#include <iostream>
+#include <sstream>
+#endif /* GEN_OSTREAM_OPS */
+
+using namespace DAnCE;
+
+namespace
+{
+ template<class T>
+ bool get_property_value (const char *name, PROPERTY_MAP &properties, T &val)
+ {
+ DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<T>");
+ CORBA::Any any;
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
+ name));
+
+ if (properties.find (name, any) == 0)
+ {
+ if (any >>= val)
+ {
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO
+ ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
+
+ return false;
+ }
+
+ template<>
+ bool get_property_value (const char *name, PROPERTY_MAP &properties, bool &val)
+ {
+ DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<bool>");
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
+ name));
+
+ CORBA::Any any;
+ if (properties.find (name, any) == 0)
+ {
+ if (any >>= CORBA::Any::to_boolean(val))
+ {
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
+
+ return false;
+ }
+
+ template<>
+ bool get_property_value (const char *name, PROPERTY_MAP &properties, const char * &val)
+ {
+ DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<const char *>");
+ CORBA::Any any;
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
+ name));
+
+ if (properties.find (name, any) == 0)
+ {
+ if (any >>= CORBA::Any::to_string(val, 0))
+ {
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<const char *> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
+
+ return false;
+ }
+
+ template<class T>
+ bool get_property_value (const char *name, const ::Deployment::Properties &properties, T &val)
+ {
+ DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<T>");
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
+ name));
+
+ for (CORBA::ULong i = 0; i < properties.length (); ++i)
+ {
+ if (ACE_OS::strcmp (properties[i].name.in (), name) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Found property '%C'\n"), name));
+ if (properties[i].value >>= val)
+ return true;
+ else
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+ }
+
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
+
+ return false;
+ }
+
+ template<>
+ bool get_property_value (const char *name, const ::Deployment::Properties &properties, const char * &val)
+ {
+ DANCE_TRACE ("NodeApplication::<anonymous>::get_property_value<const char *>");
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
+ name));
+
+ for (CORBA::ULong i = 0; i < properties.length (); ++i)
+ {
+ if (ACE_OS::strcmp (properties[i].name.in (), name) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Found property '%C'\n"), name));
+ if (properties[i].value >>= CORBA::Any::to_string (val, 0))
+ {
+ DANCE_DEBUG (9, (LM_TRACE,
+ DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Value is %C\n"), val));
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+ }
+
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Unable to find property named %C\n"), name));
+
+ return false;
+ }
+
+ /// Tests flag, if false, sets it to true and replaces the name and
+ /// reason flags of the exception.
+ template <typename EXCEPTION>
+ void test_and_set_exception (bool &flag, EXCEPTION &exception,
+ const char *name, const char *reason)
+ {
+ if (!flag)
+ {
+ flag = true;
+ exception.name = name;
+ exception.reason = reason;
+ }
+ }
+
+ void append_properties (::Deployment::Properties &dest,
+ const ::Deployment::Properties &src)
+ {
+ const char* edu_prop = "edu.vanderbilt.dre.CIAO.ComponentServer.";
+ for (CORBA::ULong i = 0; i < src.length (); ++i)
+ {
+ if (ACE_OS::strncmp (src[i].name.in (), edu_prop, ACE_OS::strlen (edu_prop)) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplication::append_properties - ")
+ ACE_TEXT("Adding property %C\n"), src[i].name.in ()));
+ CORBA::ULong const dest_length = dest.length ();
+ dest.length (dest_length + 1);
+ dest[dest_length].name = CORBA::string_dup (src[i].name.in ());
+ dest[dest_length].value = src[i].value;
+ }
+ }
+ }
+}
+
+
+NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const ::Deployment::DeploymentPlan& plan,
+ const ACE_CString& node_name,
+ const PROPERTY_MAP &properties)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ plan_ (plan),
+ node_name_ (node_name),
+ properties_ (),
+ instances_ (plan.instance.length ())
+{
+ DANCE_TRACE ("NodeApplication_Impl::NodeApplication_Impl");
+ PROPERTY_MAP::const_iterator i = properties.begin ();
+ while (!i.done ())
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::NodeApplication_Impl - ")
+ ACE_TEXT("Binding value for property '%C'\n"), i->key ().c_str ()));
+ this->properties_.bind (i->key (), i->item ());
+ i.advance ();
+ }
+ this->init ();
+}
+
+NodeApplication_Impl::~NodeApplication_Impl()
+{
+ DANCE_TRACE( "NodeApplication_Impl::~NodeApplication_Impl()");
+
+ using namespace Components;
+ ConfigValues config_values;
+ config_values.length (1L);
+ CORBA::Any feature_any;
+
+ /* TODO: This is highly suspect. I believe we should be using get_component_server,
+ not calling create_container. */
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Deactivating %u ComponentServers\n"),
+ this->servers_.size ()));
+ for (size_t i = 0; i < this->servers_.size (); ++i)
+ {
+ ComponentServer &server = this->servers_[i];
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("In ComponentServer %u, deactivating %u containers\n"), i, server.containers.size ()));
+ for (size_t j = 0; j < server.containers.size (); ++j)
+ {
+ Container &container = server.containers[j];
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("In container %u hosted in server %u\n"), j, i));
+
+ try
+ {
+ if (!CORBA::is_nil (container.ref))
+ server.ref->remove_container (container.ref.in ());
+
+ container.ref = CIAO::Deployment::Container::_nil ();
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught CORBA exception while removing container %u on server %u: %C\n"),
+ j, i, ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught unknown C++ exception while removing container %u on server %u.\n"),
+ j, i));
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Removing component server %u\n"), i));
+
+ try
+ {
+ if (!CORBA::is_nil (server.ref))
+ this->activator_->remove_component_server (server.ref.in ());
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught CORBA exception while removing server %u: %C\n"),
+ i, ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught unknown C++ exception while removing server %u.\n"),
+ i));
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Successfully removed container %u on node %C.\n"),
+ i, this->node_name_.c_str ()));
+ }
+}
+
+void
+NodeApplication_Impl::init()
+{
+ DANCE_TRACE( "NodeApplication_Impl::init()");
+
+ /* TODO: Lets move this stuff to the constructor, shall we?!? */
+ /* TODO: Might be nice to use a component configurator here to load the proper versions
+ of the serveractivator. */
+
+ /* ServerActivator configuration */
+ CORBA::ULong spawn = 0;
+ const char *cs_path = 0;
+ const char *cs_args = 0;
+ CORBA::Boolean multithread = false;
+
+ get_property_value (CIAO::Deployment::SERVER_EXECUTABLE, this->properties_, cs_path);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Component server path: %C\n"), cs_path));
+ get_property_value (CIAO::Deployment::SERVER_ARGUMENTS, this->properties_, cs_args);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Component server arguments: %C\n"), cs_args));
+ get_property_value (CIAO::Deployment::SERVER_TIMEOUT, this->properties_, spawn);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Spawn delay: %u\n"), spawn));
+ get_property_value (CIAO::Deployment::SERVER_MULTITHREAD, this->properties_, multithread);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Threading: %C\n"), multithread ? "Multi" : "Single"));
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Spawning server activator\n")));
+
+ CIAO::Deployment::ComponentInstallation_Impl *tmp_ci = 0;
+
+ ACE_NEW_THROW_EX (tmp_ci,
+ CIAO::Deployment::ComponentInstallation_Impl (),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ServantBase_var safe_servant = tmp_ci;
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (tmp_ci);
+ CORBA::Object_var ci_object = this->poa_->id_to_reference (id.in ());
+ Components::Deployment::ComponentInstallation_var ci =
+ Components::Deployment::ComponentInstallation::_narrow (ci_object.in ());
+
+ for (CORBA::ULong i = 0; i < this->plan_.artifact.length (); ++i)
+ {
+ tmp_ci->install (this->plan_.artifact[i].name,
+ this->plan_.artifact[i].location[0]);
+ }
+
+ CIAO::Deployment::CIAO_ServerActivator_i *tmp_act = 0;
+ ACE_NEW_THROW_EX (tmp_act,
+ CIAO::Deployment::CIAO_ServerActivator_i (spawn,
+ cs_path,
+ cs_args,
+ multithread,
+ ci.in (),
+ this->orb_.in(),
+ this->poa_.in()),
+ CORBA::NO_MEMORY ());
+ this->activator_.reset (tmp_act);
+
+ PortableServer::ObjectId_var sa_id =
+ this->poa_->activate_object (this->activator_.get ());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init - ServerActivator object created\n")));
+
+ const ACE_TCHAR *ior = 0;
+
+ if (get_property_value (DAnCE::INSTANCE_NC, this->properties_, ior) ||
+ get_property_value (DAnCE::DOMAIN_NC, this->properties_, ior))
+ {
+ try
+ {
+ CORBA::Object_var obj = this->orb_->string_to_object (ior);
+ this->instance_nc_ = CosNaming::NamingContext::_narrow (obj);
+ }
+ catch (const CORBA::Exception &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Unable to resolve the instance naming context:%C\n"),
+ e._info ().c_str ()));
+ }
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Successfully resolved the instance naming context.\n")));
+ }
+ else DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("No instance NC was provided\n")));
+}
+
+void
+NodeApplication_Impl::configuration_complete_components ()
+{
+ DANCE_TRACE( "NodeApplication_Impl::configuration_complete_components");
+
+ bool error = false;
+ ::Deployment::StartError exception;
+
+ for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k)
+ {
+ if (!this->instances_[k] ||
+ this->instances_[k]->type == eHome ||
+ this->instances_[k]->type == eComponentServer)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Skipping non-component instance\n")));
+ continue;
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Invoking configuration_complete on component instance %C on node %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ this->node_name_.c_str ()));
+
+ try
+ {
+ Components::CCMObject_var ccmobj =
+ Components::CCMObject::_narrow (this->instances_[k]->ref.in ());
+ if (CORBA::is_nil (this->instances_[k]->ref))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Failed to narrow object reference for component instance %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ continue;
+ }
+
+ if (this->instances_[k]->state == eInstalled)
+ {
+ ccmobj->configuration_complete ();
+ this->instances_[k]->state = eConfigured;
+ }
+ else
+ {
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = "Attempting to activate component that has already passed the configure stage.\n";
+ continue;
+ }
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Component %C successfully configured.\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Caught CORBA exception from ccm_activate on component %C: %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ ex._info ().c_str ()));
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = ex._info ().c_str ();
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_activate on component %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = "Unknown C++ exception";
+ }
+ }
+ }
+
+ if (error)
+ throw exception;
+}
+
+void
+NodeApplication_Impl::start ()
+{
+ DANCE_TRACE( "NodeApplication_Impl::start");
+
+ bool error (false);
+ ::Deployment::StartError exception;
+
+ for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k)
+ {
+ if (this->instances_[k]->type == eHome ||
+ this->instances_[k]->type == eComponentServer)
+ {
+ continue;
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Invoking start on component instance %C on node %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ this->node_name_.c_str ()));
+
+ try
+ {
+ CIAO::Deployment::Container_var cont =
+ CIAO::Deployment::Container::_narrow (this->instances_[k]->container->ref.in());
+
+ if (CORBA::is_nil (this->instances_[k]->container->ref.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Failed to narrow object reference for container managing ")
+ ACE_TEXT("component instance %C to a CIAO container reference\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error, exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Failed to narrow managing container to CIAO container type");
+ continue;
+ }
+
+ if (this->instances_[k]->state == eConfigured ||
+ this->instances_[k]->state == ePassive)
+ {
+ Components::CCMObject_var comp (Components::CCMObject::_narrow (this->instances_[k]->ref));
+ cont->activate_component (comp.in ());
+ this->instances_[k]->state = eActive;
+ }
+ else
+ {
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = "Attempting to activate component that is not configured or passive.\n";
+ }
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Component %C successfully activated.\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Caught CORBA exception from ccm_activate on component %C: %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ ex._info ().c_str ()));
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = ex._info ().c_str ();
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_activate on component %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = "Unknown C++ exception";
+ }
+ }
+ }
+
+ if (error)
+ throw exception;
+}
+
+void
+NodeApplication_Impl::install_home (Container &cont, Instance &inst)
+{
+ DANCE_TRACE( "NodeApplication_Impl::install_home");
+
+ const ::Deployment::MonolithicDeploymentDescription &mdd =
+ this->plan_.implementation[inst.mdd_idx];
+ const ::Deployment::InstanceDeploymentDescription &idd =
+ this->plan_.instance[inst.idd_idx];
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Starting installation of home %C on node %C\n"),
+ idd.name.in (), idd.node.in ()));
+
+ this->instances_[inst.idd_idx] = &inst;
+
+ // Need to get significant property values
+ const char *entrypt = 0;
+ get_property_value (DAnCE::HOME_FACTORY, mdd.execParameter, entrypt);
+
+ if (entrypt == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Unable to find home factory property on home %C\n"),
+ idd.name.in ()));
+ throw ::Deployment::InvalidComponentExecParameter (mdd.name.in (),
+ "No 'home factory' property present on MDD\n");
+ }
+
+ // @@TODO: Perhaps need better way to do this.
+ Components::ConfigValues config;
+ config.length (mdd.execParameter.length () + idd.configProperty.length ());
+ CORBA::ULong pos (0);
+
+ for (CORBA::ULong i = 0; i < mdd.execParameter.length (); ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Inserting value for execParameter %C\n"), mdd.execParameter[i].name.in ()));
+ config[pos++] = new CIAO::ConfigValue_impl (mdd.execParameter[i].name.in (),
+ mdd.execParameter[i].value);
+ }
+
+ for (CORBA::ULong i = 0; i < idd.configProperty.length (); ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Inserting value for configProperty %C\n"), idd.configProperty[i].name.in ()));
+ config[pos++] = new CIAO::ConfigValue_impl (idd.configProperty[i].name.in (),
+ idd.configProperty[i].value);
+ }
+
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Calling install_home on container. Home id '%C', entrypt '%C', ")
+ ACE_TEXT("length of config values is %u\n"),
+ idd.name.in (), entrypt, config.length ()));
+
+ ::Components::CCMHome_var home = cont.ref->install_home (idd.name.in (),
+ entrypt,
+ config);
+
+ if (CORBA::is_nil (home))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Got nil object reference from container while installing home %C on node %C,")
+ ACE_TEXT("throwing PlanError\n"),
+ idd.name.in (), idd.node.in ()));
+ throw ::Deployment::PlanError (idd.name.in (),
+ "Nil object reference returned from conainer");
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Home '%C' on node '%C' successfully installed\n"),
+ idd.name.in (), idd.node.in ()));
+
+ inst.ref = CORBA::Object::_narrow (home);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Populating attributes for home %C\n"),
+ idd.name.in ()));
+
+
+ ComponentAttributesSetter::SetComponentAttributes (idd.name.in (),
+ inst.ref.in (),
+ idd.configProperty,
+ this->orb_.in ());
+
+ inst.state = eInstalled;
+ }
+ catch (const Components::InvalidConfiguration &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Error creating home %C on node %C, caught InvalidConfiguration. Throwing exception\n"),
+ idd.name.in (), idd.node.in ()));
+ throw ::Deployment::InvalidProperty (idd.name.in (),
+ "Invalid configuration exception from container");
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Caught CORBA exception while installing home %C: %C\n"),
+ idd.name.in (),
+ ex._info ().c_str ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ ex._info ().c_str ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Caught unknown C++ exception while installing home %C\n"),
+ idd.name.in ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ "Unknown C++ exception");
+ }
+}
+
+void
+NodeApplication_Impl::install_component (Container &cont, Instance &inst)
+{
+ DANCE_TRACE( "NodeApplication_Impl::install_component");
+
+ ::Deployment::MonolithicDeploymentDescription const &mdd =
+ this->plan_.implementation[inst.mdd_idx];
+ ::Deployment::InstanceDeploymentDescription const &idd =
+ this->plan_.instance[inst.idd_idx];
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Starting installation of home %C on node %C\n"),
+ idd.name.in (), idd.node.in ()));
+
+ this->instances_[inst.idd_idx] = &inst;
+
+ const char *entrypt = 0;
+ get_property_value (DAnCE::COMPONENT_FACTORY, mdd.execParameter, entrypt);
+
+ if (entrypt == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Unable to find component factory property on component %C\n"),
+ idd.name.in ()));
+ throw ::Deployment::InvalidComponentExecParameter (mdd.name.in (),
+ "No 'component factory' property present on MDD\n");
+ }
+
+ // @@TODO: Perhaps need better way to do this.
+ Components::ConfigValues config;
+ config.length (mdd.execParameter.length () + idd.configProperty.length ());
+ CORBA::ULong pos (0);
+
+ for (CORBA::ULong i = 0; i < mdd.execParameter.length (); ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Inserting value for execParameter %C\n"), mdd.execParameter[i].name.in ()));
+ config[pos++] = new CIAO::ConfigValue_impl (mdd.execParameter[i].name.in (),
+ mdd.execParameter[i].value);
+ }
+
+ for (CORBA::ULong i = 0; i < idd.configProperty.length (); ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Inserting value for configProperty %C\n"), idd.configProperty[i].name.in ()));
+ config[pos++] = new CIAO::ConfigValue_impl (idd.configProperty[i].name.in (),
+ idd.configProperty[i].value);
+ }
+
+ ::CIAO::Deployment::Container_var ciao_cont = ::CIAO::Deployment::Container::_narrow (cont.ref.in ());
+
+ if (CORBA::is_nil (ciao_cont.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Unable to narrow container assigned for component instance %C to one that supports ")
+ ACE_TEXT("un-homed components.\n")));
+ throw ::Deployment::PlanError (idd.name.in (),
+ "Hosting container does not support unhomed components.\n");
+ }
+
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Calling install_component on container. Component id '%C', entrypt '%C', ")
+ ACE_TEXT("length of config values is %u\n"),
+ idd.name.in (), entrypt, config.length ()));
+
+ ::Components::CCMObject_var comp = ciao_cont->install_component (idd.name.in (),
+ entrypt,
+ config);
+
+ if (CORBA::is_nil (comp))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Got nil object reference from container while installing component %C on node %C,")
+ ACE_TEXT("throwing PlanError\n"),
+ idd.name.in (), idd.node.in ()));
+ throw ::Deployment::PlanError (idd.name.in (),
+ "Nil object reference returned from install_component on conainer");
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Component '%C' on node '%C' successfully installed\n"),
+ idd.name.in (), idd.node.in ()));
+
+ inst.ref = CORBA::Object::_narrow (comp);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Populating attributes for home %C\n"),
+ idd.name.in ()));
+
+
+ ComponentAttributesSetter::SetComponentAttributes (idd.name.in (),
+ inst.ref.in (),
+ idd.configProperty,
+ this->orb_.in ());
+
+ inst.state = eInstalled;
+ }
+ catch (const Components::InvalidConfiguration &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Error creating component %C on node %C, caught InvalidConfiguration. Throwing exception\n"),
+ idd.name.in (), idd.node.in ()));
+ throw ::Deployment::InvalidProperty (idd.name.in (),
+ "Invalid configuration exception from container");
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Caught CORBA exception while installing component %C: %C\n"),
+ idd.name.in (),
+ ex._info ().c_str ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ ex._info ().c_str ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Caught unknown C++ exception while installing component %C\n"),
+ idd.name.in ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ "Unknown C++ exception");
+ }
+}
+
+void
+NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
+{
+ DANCE_TRACE("NodeApplication_Impl::install_homed_component (unsigned int index)");
+
+ ::Deployment::InstanceDeploymentDescription const &idd =
+ this->plan_.instance[inst.idd_idx];
+ this->instances_[inst.idd_idx] = &inst;
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Starting installation of homed component %C on node %C\n"),
+ idd.name.in (),
+ idd.node.in ()));
+
+ const char *home_id = 0;
+ get_property_value (DAnCE::EXPLICIT_HOME, idd.configProperty, home_id);
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Property %C has value %C\n"),
+ DAnCE::EXPLICIT_HOME, home_id));
+
+
+ if (home_id == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Nodeapplication_Impl::install_homed_component - ")
+ ACE_TEXT("Apparent homed component %C lacks a %C configProperty, aborting installation\n"),
+ idd.name.in (), DAnCE::EXPLICIT_HOME));
+ throw ::Deployment::PlanError (idd.name.in (),
+ "No explicit home property on component requiring explicit home.");
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Found explicit home property '%C' for component '%C'\n"),
+ home_id,
+ idd.name.in ()));
+
+ Instance *home_inst (0);
+
+ for (size_t i = 0; i < cont.homes.size (); ++i)
+ {
+ if (ACE_OS::strcmp (home_id,
+ this->plan_.instance[cont.homes[i].idd_idx].name.in ()) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Found home designated for component '%C'\n"),
+ idd.name.in ()));
+ home_inst = &cont.homes[i];
+ break;
+ }
+ }
+
+ if (home_inst == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Unable to find home instance matching %C allocated to same container as component %C\n"),
+ home_id,
+ idd.name.in ()));
+ throw ::Deployment::InvalidProperty (idd.name.in (),
+ "Unable to find valid home allocated to same container.");
+ }
+
+ Components::KeylessCCMHome_var home =
+ Components::KeylessCCMHome::_narrow (home_inst->ref.in ());
+
+ if (CORBA::is_nil (home.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Object reference for home '%C' for homed component '%C' is nil\n"),
+ home_id,
+ idd.name.in ()));
+ throw ::Deployment::PlanError (idd.name.in (),
+ "Installed home for explicitly homed component has nil object reference\n");
+ }
+
+ try
+ {
+ inst.home = home_inst;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Invoking create_component on home %C for component %C\n"),
+ home_id,
+ idd.name.in ()));
+
+ Components::CCMObject_var ccm_obj = home->create_component ();
+
+ if (CORBA::is_nil (ccm_obj))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Received nil component reference from create_component on home %C ")
+ ACE_TEXT(" while creating component %C\n"),
+ home_id, idd.name.in ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ "Home for explicitly homed component returned nil");
+ }
+
+ inst.ref = CORBA::Object::_narrow (ccm_obj.in ());
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Component %C successfully installed in home %C\n"),
+ idd.name.in (),
+ home_id));
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Populating attributes for component %C\n"),
+ idd.name.in ()));
+ ComponentAttributesSetter::SetComponentAttributes (idd.name.in (),
+ inst.ref.in (),
+ idd.configProperty,
+ this->orb_.in ());
+ inst.state = eInstalled;
+ }
+ catch (const Components::CreateFailure &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Caught CreateFailure exception from home '%C' while installing component '%C'\n"),
+ home_inst,
+ idd.name.in ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ "Caught CreateFailure exception");
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Caught CORBA exception while installing component %C in home %C: %C\n"),
+ idd.name.in (),
+ home_id,
+ ex._info ().c_str ()));
+ throw ::Deployment::StartError (idd.name.in (),
+ ex._info ().c_str ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Caught unknown C++ exception while installing component %C in home %C\n"),
+ idd.name.in (),
+ home_id));
+ throw ::Deployment::StartError (idd.name.in (),
+ "Unknown C++ exception");
+ }
+}
+
+void
+NodeApplication_Impl::create_component_server (size_t index)
+{
+ DANCE_TRACE ("NodeApplication_Impl::create_component_server");
+
+ ComponentServer &server = this->servers_[index];
+
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_Server - ")
+ ACE_TEXT("creating component server %u\n"), index));
+ ::Components::ConfigValues config_values;
+
+ if (this->servers_[index].properties != 0)
+ {
+ DANCE_DEBUG (9, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_Server - ")
+ ACE_TEXT ("Passing %u properties to component server\n"),
+ this->servers_[index].properties->length ()));
+
+ config_values.length (this->servers_[index].properties->length ());
+ for (CORBA::ULong i = 0; i < this->servers_[index].properties->length ();
+ ++i)
+ {
+ DANCE_DEBUG (9, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_Server - ")
+ ACE_TEXT ("Copying value <%C>\n"),
+ (*this->servers_[index].properties)[i].name.in ()));
+
+ config_values[i] = new CIAO::ConfigValue_impl ((*this->servers_[index].properties)[i].name.in (),
+ (*this->servers_[index].properties)[i].value);
+
+ }
+ }
+
+
+ server.ref = this->activator_->create_component_server (config_values);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::create_component_server - ")
+ ACE_TEXT("component server created\n")));
+ }
+ catch (const ::Components::CreateFailure& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ")
+ ACE_TEXT("Components::Deployment::ServerActivator_var::create_component_server() ")
+ ACE_TEXT("returned ::Components::CreateFailure exception\n")));
+ throw ::Deployment::StartError("",
+ "Received a ::Components::CreateFailure exception while creating component server.");
+ }
+ catch (const ::Components::Deployment::InvalidConfiguration& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ")
+ ACE_TEXT("Components::Deployment::ServerActivator_var::create_component_server() ")
+ ACE_TEXT("returned ::Components::Deployment::InvalidConfiguration exception\n")));
+ throw ::Deployment::InvalidProperty("",
+ "::Components::Deployment::InvalidConfiguration exception caught while creating server");
+ }
+
+ try
+ {
+ for (size_t i = 0; i < server.containers.size (); ++i)
+ {
+ this->create_container (index, i);
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ")
+ ACE_TEXT("Caught exception whilst creating container; re-throwing.\n")));
+ throw;
+ }
+}
+
+void
+NodeApplication_Impl::store_instance_ior (Instance &inst)
+{
+ DANCE_TRACE ("NodeApplication_Impl::store_instance_ior");
+
+ const char *name = 0;
+
+ if (get_property_value (DAnCE::REGISTER_NAMING,
+ this->plan_.instance[inst.idd_idx].configProperty,
+ name))
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::store_instance_ior - ")
+ ACE_TEXT("Storing instance '%C' object reference in Naming Service as %C\n"),
+ this->plan_.instance[inst.idd_idx].name.in (),
+ name));
+
+ Name_Utilities::bind_object (name, inst.ref.in (), this->instance_nc_.in ());
+ }
+
+ if (get_property_value (DAnCE::INSTANCE_IOR_FILE,
+ this->plan_.instance[inst.idd_idx].configProperty,
+ name))
+ {
+ CORBA::String_var ior = this->orb_->object_to_string (inst.ref.in ());
+ Name_Utilities::write_ior (ACE_TEXT_CHAR_TO_TCHAR (name),
+ (ior.in ()));
+ }
+}
+
+void
+NodeApplication_Impl::create_container (size_t server, size_t cont_idx)
+{
+ DANCE_TRACE ("NodeApplication_Impl::create_container");
+
+ Container &container = this->servers_[server].containers[cont_idx];
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ")
+ ACE_TEXT("Creating container\n")));
+ // TODO: Need to create configvalues
+ Components::ConfigValues cvs;
+
+ container.ref = this->servers_[server].ref->create_container (cvs);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ")
+ ACE_TEXT("Configuring %u homes on container %u on server %u\n"),
+ container.homes.size (),
+ server, cont_idx));
+
+ // Configure homes first
+ for (size_t i = 0; i < container.homes.size (); ++i)
+ {
+ this->install_home (container, container.homes[i]);
+ this->store_instance_ior (container.homes[i]);
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::create_container - ")
+ ACE_TEXT("Configuring %u components on container %u on server %u\n"),
+ container.components.size (),
+ server,
+ cont_idx));
+
+ // Configure components
+ for (size_t i = 0; i < container.components.size (); ++i)
+ {
+ switch (container.components[i].type)
+ {
+ case eComponent:
+ this->install_component (container, container.components[i]);
+ break;
+ case eHomedComponent:
+ this->install_homed_component (container, container.components[i]);
+ break;
+ default:
+ break;
+ }
+ this->store_instance_ior (container.components[i]);
+ }
+}
+
+NodeApplication_Impl::ColocationMap
+NodeApplication_Impl::create_colocation_groups (void)
+{
+ DANCE_TRACE ("NodeApplication_Impl::create_colocation_groups");
+
+ ColocationMap retval;
+ this->servers_.max_size (this->plan_.localityConstraint.length () + 1);
+
+ size_t num_servers = 0;
+
+ for (CORBA::ULong i = 0; i < this->plan_.instance.length (); ++i)
+ {
+ retval [this->plan_.instance[i].name.in ()] = -1;
+ }
+
+ for (CORBA::ULong i = 0; i < this->plan_.localityConstraint.length (); ++i)
+ {
+ if (this->plan_.localityConstraint[i].constraint == ::Deployment::PlanNoConstraint)
+ {
+ DANCE_DEBUG (10, (LM_INFO, DLINFO
+ ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ")
+ ACE_TEXT ("Skipping NoConstraint Colocation group\n")));
+ continue;
+ }
+ else if (this->plan_.localityConstraint[i].constraint != ::Deployment::PlanSameProcess)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ")
+ ACE_TEXT ("Error: On locality constraint %u, unsupported locality constraint.\n"),
+ i));
+ continue;
+ }
+
+ ::CORBA::ULongSeq const &instances =
+ this->plan_.localityConstraint[i].constrainedInstanceRef;
+
+ this->servers_.size (num_servers + 1);
+
+ for (CORBA::ULong j = 0; j < instances.length (); ++j)
+ {
+ std::string id = this->plan_.instance[instances[j]].name.in ();
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ")
+ ACE_TEXT ("Instance <%C> allocated to component server %u\n"),
+ id.c_str (), num_servers));
+
+ retval[id] = num_servers;
+
+ CORBA::ULong impl = this->plan_.instance[instances[j]].implementationRef;
+
+ if (this->get_instance_type (this->plan_.implementation[impl].execParameter) ==
+ eComponentServer)
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ")
+ ACE_TEXT ("Found component server instance\n")));
+
+ this->servers_[num_servers].properties = &this->plan_.instance[instances[j]].configProperty;
+ }
+ }
+
+ ++num_servers;
+ }
+
+ bool create_default_server (false);
+
+ for (ColocationMap::iterator i = retval.begin ();
+ i != retval.end (); ++i)
+ {
+ if (i->second == -1)
+ {
+ if (!create_default_server)
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ")
+ ACE_TEXT ("Creating default colocation group.\n")));
+ create_default_server = true;
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO
+ ACE_TEXT ("NodeApplication_Impl::create_colocation_groups - ")
+ ACE_TEXT ("Assigning instance <%C> to default colocation group.\n"),
+ i->first.c_str ()));
+ i->second = num_servers;
+ }
+ else
+ {
+
+ }
+ }
+
+ if (create_default_server)
+ {
+ ++num_servers;
+ }
+
+ this->servers_.size (num_servers);
+
+ return retval;
+}
+
+void
+NodeApplication_Impl::init_components()
+{
+ DANCE_TRACE ("NodeApplication_Impl::init_components");
+
+ Components::ConfigValues config_values;
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("NodeApplication_Impl::init_components - ")
+ ACE_TEXT("Configuring %u component/home instances\n"),
+ this->plan_.instance.length()));
+
+ if (this->plan_.instance.length () == 0)
+ return;
+
+ ColocationMap colocation_map = this->create_colocation_groups ();
+
+ // @@TODO: For the moment, we are only going to support a single container per server.
+ // in the future, we will need to determine how many containers we need per server.
+ for (size_t i = 0; i < this->servers_.size (); ++i)
+ {
+ this->servers_[i].containers.size (1);
+ }
+
+ for (CORBA::ULong i = 0; i < this->plan_.instance.length(); i++)
+ {
+ try
+ {
+ CORBA::ULong impl = this->plan_.instance[i].implementationRef;
+ // Determine type from implementation properties, then from instance properties.
+ EInstanceType type =
+ this->get_instance_type (this->plan_.implementation[impl].execParameter);
+ if (type == eInvalid)
+ type = this->get_instance_type (this->plan_.instance[i].configProperty);
+ if (type == eInvalid)
+ continue;
+
+ switch (type)
+ {
+ case eHome:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("NodeApplication_Impl::init_components - ")
+ ACE_TEXT("Allocating instance %C as a home\n"),
+ this->plan_.instance[i].name.in ()));
+ size_t const svr = colocation_map[this->plan_.instance[i].name.in ()];
+ size_t const pos = this->servers_[svr].containers[0].homes.size ();
+
+ //append_properties (this->servers_[svr].properties, this->plan_.instance[i].configProperty);
+
+ this->servers_[svr].containers[0].homes.size (pos + 1);
+ this->servers_[svr].containers[0].homes[pos] = Instance (eHome,
+ &this->servers_[svr].containers[0],
+ i,
+ this->plan_.instance[i].implementationRef);
+ break;
+ }
+ case eComponent:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - ")
+ ACE_TEXT("Allocating instance %C as a standalone component\n"),
+ this->plan_.instance[i].name.in ()));
+ size_t const svr = colocation_map[this->plan_.instance[i].name.in ()];
+ size_t const pos = this->servers_[svr].containers[0].components.size ();
+ //append_properties (this->servers_[svr].properties, this->plan_.instance[i].configProperty);
+ this->servers_[svr].containers[0].components.size (pos + 1);
+ this->servers_[svr].containers[0].components[pos] = Instance (eComponent,
+ &this->servers_[svr].containers[0],
+ i,
+ this->plan_.instance[i].implementationRef);
+ break;
+ }
+ case eHomedComponent:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - ")
+ ACE_TEXT("Allocating instance %C as a home managed component\n"),
+ this->plan_.instance[i].name.in ()));
+ size_t const svr = colocation_map[this->plan_.instance[i].name.in ()];
+ size_t const pos = this->servers_[svr].containers[0].components.size ();
+ //append_properties (this->servers_[svr].properties, this->plan_.instance[i].configProperty);
+ this->servers_[svr].containers[0].components.size (pos + 1);
+ this->servers_[svr].containers[0].components[pos] = Instance (eHomedComponent,
+ &this->servers_[svr].containers[0],
+ i,
+ this->plan_.instance[i].implementationRef);
+ break;
+ }
+ case eComponentServer:
+ {
+ size_t const svr = colocation_map[this->plan_.instance[i].name.in ()];
+ this->servers_[svr].instance = Instance (eComponentServer,
+ 0,
+ i,
+ this->plan_.instance[i].implementationRef);
+ this->instances_[i] = &this->servers_[svr].instance;
+ break;
+ }
+
+ default:
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::init_components - ")
+ ACE_TEXT("get_instance_type function returned invalid instance type\n")));
+ throw ::Deployment::InvalidProperty (this->plan_.instance[i].name.in (),
+ "Unable to affirmatively determine instance type");
+ }
+ } // switch
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Exception was thrown while sorting instance \"%C\".\n"),
+ this->plan_.instance[i].name.in()));
+ throw;
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplication_Impl::init_components - ")
+ ACE_TEXT("Creating component servers and installing components.\n")));
+
+ for (size_t i = 0; i < this->servers_.size (); ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - ")
+ ACE_TEXT("Creating component server with index %u\n"), i));
+ this->create_component_server (i);
+ }
+
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init_components - finished\n")));
+}
+
+void
+NodeApplication_Impl::passivate_components()
+{
+ DANCE_TRACE ("NodeApplication_Impl::passivate_components()");
+
+ bool error (false);
+ ::Deployment::StopError exception ("unfilled", "unfilled passivate components");
+
+ for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k)
+ {
+ if (this->instances_[k]->type == eHome ||
+ this->instances_[k]->type == eComponentServer ||
+ this->instances_[k]->type == eInvalid)
+ continue;
+
+ try
+ {
+ CIAO::Deployment::Container_var cont =
+ CIAO::Deployment::Container::_narrow (this->instances_[k]->container->ref.in());
+
+ if (CORBA::is_nil (this->instances_[k]->container->ref.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Failed to narrow object reference for container managing ")
+ ACE_TEXT("component instance %C to a CIAO container reference\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error, exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Failed to narrow managing container to CIAO container type");
+ continue;
+ }
+
+ if (this->instances_[k]->state == eActive)
+ {
+ Components::CCMObject_var comp (Components::CCMObject::_narrow (this->instances_[k]->ref));
+ cont->passivate_component (comp.in ());
+ this->instances_[k]->state = ePassive;
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Attempting to passivate non-active component %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error, exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Attempting to passivate non-active component.");
+ continue;
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ")
+ ACE_TEXT("Component %C successfully passivated.\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ")
+ ACE_TEXT("Caught CORBA exception from ccm_passivate on component %C: %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ ex._info ().c_str ()));
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = ex._info ().c_str ();
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_passivate on component %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ if (!error)
+ {
+ error = true;
+ exception.name = this->plan_.instance[this->instances_[k]->idd_idx].name.in ();
+ exception.reason = "Unknown C++ exception";
+ }
+ }
+ }
+
+ if (error)
+ throw exception;
+}
+
+void
+NodeApplication_Impl::remove_components()
+{
+ DANCE_TRACE ("NodeApplication_Impl::remove_components()");
+
+ bool error (false);
+ ::Deployment::StopError exception ("unfilled", "unfilled remove_components");
+
+ // Removing components first.
+ for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k)
+ {
+ try
+ {
+ if (this->instances_[k]->type == eInvalid ||
+ this->instances_[k]->type == eComponentServer ||
+ this->instances_[k]->type == eHome)
+ continue;
+
+ if (this->instances_[k]->state != ePassive)
+ DANCE_DEBUG (6, (LM_WARNING, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Attempting to remove component that is not passive.\n")));
+
+ if (this->instances_[k]->type == eComponent)
+ {
+ if (this->instances_[k]->container == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Container element in component data structure for '%C' is nill\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()
+ ));
+
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Container element in component data structure is nil\n");
+ this->instances_[k]->state = eInvalidState;
+ continue;
+ }
+
+ CIAO::Deployment::Container_var ciao_container =
+ CIAO::Deployment::Container::_narrow (this->instances_[k]->container->ref.in ());
+
+ if (CORBA::is_nil (ciao_container.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Attempted to remove un-homed component from unsupported container\n")));
+
+ test_and_set_exception (error, exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Attempted to remove un-homed component from unsupported container\n");
+ this->instances_[k]->state = eInvalidState;
+ continue;
+ }
+
+ ciao_container->remove_component (Components::CCMObject::_narrow (this->instances_[k]->ref.in ()));
+ }
+ else
+ {
+ Components::CCMHome_var home =
+ Components::CCMHome::_narrow (this->instances_[k]->home->ref.in ());
+
+ if (CORBA::is_nil (home))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Object reference for home %C, managing component %C is nil.\n"),
+ this->plan_.instance[this->instances_[k]->home->idd_idx].name.in (),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Managing home's object reference is invalid.");
+ this->instances_[k]->state = eInvalidState;
+ continue;
+ }
+
+ home->remove_component (Components::CCMObject::_narrow (this->instances_[k]->ref.in ()));
+ }
+
+
+ this->instances_[k]->state = eRemoved;
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Component %C successfully removed.\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught CORBA exception removing on component %C: %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ ex._info ().c_str ()));
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ exception.reason = ex._info ().c_str ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_remove on component %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Unknown C++ exception");
+ }
+ }
+
+ for (INSTANCES::size_type k = 0; k < this->instances_.size (); ++k)
+ {
+ try
+ {
+ if (this->instances_[k]->type != eHome)
+ continue;
+
+ DANCE_ERROR (1, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Removing home %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+
+ if (this->instances_[k]->container == 0 ||
+ CORBA::is_nil (this->instances_[k]->container->ref.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Home %C lacks an associated container reference\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Didn't have a valid container reference");
+ continue;
+ }
+
+ Components::CCMHome_var home = Components::CCMHome::_narrow (this->instances_[k]->ref.in ());
+ this->instances_[k]->container->ref->remove_home (home.in ());
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Successfully uninstalled home %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught CORBA exception removing home %C: %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ ex._info ().c_str ()));
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ exception.reason = ex._info ().c_str ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught unknown C++ exception from while removing home %C\n"),
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
+ test_and_set_exception (error,
+ exception,
+ this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
+ "Unknown C++ exception");
+ }
+ }
+
+if (error)
+ throw exception;
+}
+
+NodeApplication_Impl::EInstanceType
+NodeApplication_Impl::get_instance_type (const ::Deployment::Properties& prop) const
+{
+ DANCE_TRACE ("NodeApplication_Impl::get_instance_type");
+
+ for (CORBA::ULong i = 0; i < prop.length (); ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Checking property %C\n"),
+ prop[i].name.in ()));
+
+ if (ACE_OS::strcmp (prop[i].name.in (),
+ DAnCE::HOME_FACTORY) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found Home type\n")));
+ return eHome;
+ }
+ if (ACE_OS::strcmp (prop[i].name.in (),
+ DAnCE::COMPONENT_FACTORY) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found unmanaged component type.\n")));
+ return eComponent;
+ }
+ if (ACE_OS::strcmp (prop[i].name.in (),
+ DAnCE::EXPLICIT_HOME) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found explicit home component type.\n")));
+ return eHomedComponent;
+ }
+
+ if (ACE_OS::strcmp (prop[i].name.in (),
+ DAnCE::IMPL_TYPE) == 0)
+ {
+ const char *val;
+ if (get_property_value (DAnCE::IMPL_TYPE,
+ prop,
+ val) &&
+ ACE_OS::strcmp (val,
+ DAnCE::SERVER_EXECUTABLE) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found component server type.\n")));
+ return eComponentServer;
+ }
+ }
+ }
+
+ DANCE_ERROR (1, (LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Unable to determine instance type, instance will be ignored.\n")));
+ return eInvalid;
+}
+
+::Deployment::Connections*
+NodeApplication_Impl::getAllConnections()
+{
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - started\n")));
+
+ ::Deployment::Connections_var conn;
+ ACE_NEW_THROW_EX (conn,
+ ::Deployment::Connections (),
+ CORBA::NO_MEMORY ());
+ unsigned int index = 0;
+
+ for (CORBA::ULong i = 0; i < this->plan_.connection.length(); i++)
+ {
+ for (CORBA::ULong j = 0; j < this->plan_.connection[i].internalEndpoint.length(); j++)
+ {
+ if (this->plan_.connection[i].internalEndpoint[j].provider)
+ {
+ index = conn->length ();
+ conn->length (index + 1);
+ (*conn) [index].name = CORBA::string_dup (this->plan_.connection[i].name.in());
+
+ ACE_CString const inst_name =
+ this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in();
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("Found provider '%C' for connection '%C'\n"),
+ this->plan_.connection[i].name.in (),
+ inst_name.c_str ()));
+
+ Components::CCMObject_var obj =
+ Components::CCMObject::
+ _narrow (this->instances_[this->plan_.connection[i].internalEndpoint[j].instanceRef]->ref.in ());
+
+ (*conn) [index].endpoint.length (1L);
+ switch (this->plan_.connection[i].internalEndpoint[j].kind)
+ {
+ case ::Deployment::Facet:
+ {
+ try
+ {
+ ACE_CString const name = this->plan_.connection[i].internalEndpoint[j].portName.in();
+ if (name.compare ("supports") != 0)
+ {
+ if (this->is_local_facet (this->plan_.connection[i]))
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("Found local facet for connection %C endpoint %C started\n"),
+ this->plan_.connection[i].name.in(),
+ name.c_str ()));
+ (*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in());
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("provide_facet for connection %C endpoint %C started\n"),
+ this->plan_.connection[i].name.in(),
+ name.c_str ()));
+ (*conn) [index].endpoint[0] = obj->provide_facet (name.c_str());
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("provide_facet for connection %C endpoint %C finished\n"),
+ this->plan_.connection[i].name.in(),
+ name.c_str ()));
+ }
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("provide_facet for connection %C endpoint %C started\n"),
+ this->plan_.connection[i].name.in(),
+ name.c_str ()));
+ (*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in());
+ }
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - provide_facet finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("Components::CCMObject_var::provide_facet() returned ")
+ ACE_TEXT("::Components::InvalidName exception for connection %C and port %C\n"),
+ this->plan_.connection[i].name.in (),
+ this->plan_.connection[i].internalEndpoint[j].portName.in ()));
+ throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (),
+ "Container returned InvalidName");
+ }
+ break;
+ }
+
+ case ::Deployment::EventConsumer:
+ {
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("get_consumer for connection %C endpoint %C started\n"),
+ this->plan_.connection[i].name.in(),
+ this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ (*conn) [index].endpoint[0] = obj->get_consumer (this->plan_.connection[i].internalEndpoint[j].portName.in());
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("get_consumer finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("Components::CCMObject_var::get_consumer() returned ")
+ ACE_TEXT("::Components::InvalidName exception for connection %C and port %C\n"),
+ this->plan_.connection[i].name.in (),
+ this->plan_.connection[i].internalEndpoint[j].portName.in ()));
+ throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (),
+ "Container returned InvalidName exception");
+ }
+ break;
+ }
+ default:
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::getAllConnections - ")
+ ACE_TEXT("Connection.InternalEndPoint.Kind is not a ")
+ ACE_TEXT("Deployment::Facet or Deployment::EventConsumer\n")));
+ throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (),
+ "Invalid connection type, should be Facet or EventConsumer");
+ }
+ }
+ }
+ }
+ }
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections - finished\n")));
+ return conn._retn();
+}
+
+void
+NodeApplication_Impl::finishLaunch (const ::Deployment::Connections & providedReference,
+ ::CORBA::Boolean start)
+{
+ DANCE_TRACE ("NodeApplication_Impl::finishLaunch");
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("started for connections sequence with length %d and plan size %d\n"),
+ providedReference.length(),
+ this->plan_.connection.length()));
+
+#ifdef GEN_OSTREAM_OPS
+ {
+ std::ostringstream pr_stream;
+ pr_stream << providedReference << std::endl;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "NodeApplication_Impl::finishLaunch - Provided references: %C\n",
+ pr_stream.str ().c_str ()));
+ }
+#endif /* GEN_OSTREAM_OPS */
+
+ for (CORBA::ULong j = 0; j < this->plan_.connection.length(); ++j)
+ {
+ CORBA::ULong inst (this->plan_.connection[j].internalEndpoint[0].instanceRef);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Connection %C, instance %u\n"),
+ this->plan_.connection[j].name.in (),
+ inst));
+
+#ifdef GEN_OSTREAM_OPS
+ {
+ std::ostringstream conn_stream;
+ conn_stream << this->plan_.connection[j] << std::endl;
+ DANCE_DEBUG (9, (LM_TRACE, "NodeApplication_Impl::finishLaunch - Local connections: %C\n", conn_stream.str ().c_str ()));
+ }
+#endif /* GEN_OSTREAM_OPS */
+
+ Components::CCMObject_var obj =
+ Components::CCMObject::_narrow (this->instances_[inst]->ref.in ());
+
+ if (CORBA::is_nil (obj.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Unable to narrow apparent component instance reference to CCMObject for instance '%C'\n"),
+ this->plan_.instance[inst].name.in ()));
+ throw ::Deployment::InvalidConnection (this->plan_.instance[inst].name.in (),
+ "Unable to narrow apparent component instance reference to CCMObject\n");
+ }
+
+ ::Deployment::PlanConnectionDescription const &conn = this->plan_.connection[j];
+
+ ACE_CString const name = conn.name.in();
+
+ for (CORBA::ULong i = 0; i < providedReference.length(); ++i)
+ {
+ if (name.compare (providedReference[i].name.in()) == 0)
+ {
+ try
+ {
+ switch (conn.internalEndpoint[0].kind)
+ {
+ case ::Deployment::Facet:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Set for facet [%C]\n"), name.c_str ()));
+ Components::CCMObject_var ext_inst;
+ try
+ {
+ if (0 == conn.externalReference.length())
+ {
+ if (conn.internalEndpoint.length () == 2 &&
+ (conn.internalEndpoint[1].kind == ::Deployment::MultiplexReceptacle ||
+ conn.internalEndpoint[1].kind == ::Deployment::SimplexReceptacle))
+ {
+ obj = Components::CCMObject::
+ _narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->ref.in ());
+
+ if (this->is_local_facet (conn))
+ {
+ ::Components::CCMObject_var facet =
+ ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ());
+
+ ::Components::CCMObject_var recep =
+ ::Components::CCMObject::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->ref.in ());
+
+ ::CIAO::Deployment::Container_var cont =
+ ::CIAO::Deployment::Container::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->container->ref.in ());
+
+ this->connect_receptacle (conn,
+ facet.in (),
+ conn.internalEndpoint[0].portName.in (),
+ obj.in (),
+ conn.internalEndpoint[1].portName.in(),
+ cont.in ());
+ }
+ else
+ {
+ this->connect_receptacle (conn,
+ obj.in (),
+ "",
+ providedReference[i].endpoint[0].in(),
+ conn.internalEndpoint[1].portName.in(),
+ ::CIAO::Deployment::Container::_nil());
+ }
+ }
+ break;
+ }
+ CORBA::Object_var tmp =
+ this->orb_->string_to_object (conn.externalReference[0].location.in());
+ ext_inst = Components::CCMObject::_narrow (tmp);
+ if (CORBA::is_nil (ext_inst.in()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("facet for [%C] can't be narrowed\n"), name.c_str ()));
+ break;
+ }
+ this->connect_receptacle_ext (ext_inst,
+ conn.externalReference[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ }
+ catch (const CORBA::OBJECT_NOT_EXIST&)
+ {
+ // @@TODO: Shouldn't this be an error?!?
+ break;
+ }
+ catch (const CORBA::TRANSIENT&)
+ {
+ // @@TODO: Shouldn't this be an error?!?
+ break;
+ }
+
+ break;
+ }
+
+ case ::Deployment::EventConsumer:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for consumer\n")));
+ Components::CCMObject_var ext_inst;
+ try
+ {
+ if (0 == conn.externalReference.length())
+ {
+ break;
+ }
+ CORBA::Object_var tmp =
+ this->orb_->string_to_object (conn.externalReference[0].location.in());
+ ext_inst = Components::CCMObject::_narrow (tmp);
+ if (CORBA::is_nil (ext_inst.in()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("reference for %C can't be narrowed\n"), name.c_str ()));
+ throw ::Deployment::InvalidConnection(conn.name.in (),
+ "Couldn't narrow reference for external reference");
+ break;
+ }
+ try
+ {
+ // Check is connection kind is consumer to emitter?
+ this->connect_emitter_ext (ext_inst,
+ conn.externalReference[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ }
+ catch (const ::Components::InvalidName&)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("connect_emitter_ext resulted in InvalidName, trying connect_publisher\n")));
+ // No this is consumer to publisher
+ this->connect_publisher (ext_inst,
+ conn.externalReference[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ }
+ }
+ catch (const CORBA::OBJECT_NOT_EXIST&)
+ {
+ break;
+ }
+ catch (const CORBA::TRANSIENT&)
+ {
+ break;
+ }
+ break;
+ }
+ case ::Deployment::MultiplexReceptacle:
+ case ::Deployment::SimplexReceptacle:
+ {
+ // What we should do with Cookie, returned from connect call???
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - Set for receptacle\n")));
+ if (CORBA::is_nil (providedReference[i].endpoint[0].in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT ("Reference provided from DomainApplication was nil.\n")));
+ throw Deployment::InvalidConnection ("",
+ "Nil provided reference from DomainApplication");
+ }
+
+ ::Components::CCMObject_var facet =
+ ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ());
+
+ if (this->is_local_facet (conn))
+ {
+ ::CIAO::Deployment::Container_var cont =
+ ::CIAO::Deployment::Container::_narrow (this->instances_[conn.internalEndpoint[1].instanceRef]->container->ref.in ());
+ this->connect_receptacle (conn,
+ facet.in (),
+ conn.internalEndpoint[1].portName.in (),
+ obj.in(),
+ conn.internalEndpoint[0].portName.in(),
+ cont.in ());
+ }
+ else
+ {
+ CORBA::Object_var portref = CORBA::Object::_duplicate (providedReference[i].endpoint[0].in());
+
+ if (0 != conn.externalReference.length ())
+ {
+ ::Components::CCMObject_var facet =
+ ::Components::CCMObject::_narrow (providedReference[i].endpoint[0].in ());
+
+ if (!CORBA::is_nil (facet.in ()))
+ portref = facet->provide_facet (conn.externalReference[0].portName.in ());
+ }
+
+ this->connect_receptacle (conn,
+ obj.in (),
+ "",
+ portref.in (),
+ conn.internalEndpoint[0].portName.in(),
+ ::CIAO::Deployment::Container::_nil());
+
+ }
+
+ break;
+ }
+ case ::Deployment::EventEmitter:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for emitter\n")));
+ this->connect_emitter (obj.in(),
+ conn.internalEndpoint[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ break;
+ }
+ case ::Deployment::EventPublisher:
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - set for publisher\n")));
+ this->connect_publisher (obj.in(),
+ conn.internalEndpoint[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ break;
+ }
+ default:
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - currect Connection.InternalEndPoint.Kind ")
+ ACE_TEXT("is not a Deployment::SimplexReceptacle, Deployment::EventEmitter, Deployment::EventPublisher ")
+ ACE_TEXT("(Connection:%C Kind:%i PortName:%C)\n"),
+ conn.name.in(),
+ conn.internalEndpoint[0].kind,
+ conn.internalEndpoint[0].portName.in()
+ ));
+ throw ::Deployment::InvalidConnection(conn.name.in (),
+ "Invalid connection type, should be Receptacle or even producer.");
+ }//default
+ }//switch
+ }
+ catch (::Deployment::StartError &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Intercepted StartError exception while configuring [%C] connection, rethrowing\n"),
+ name.c_str ()));
+ ex.name = name.c_str ();
+ throw;
+ }
+ catch (::Deployment::InvalidConnection &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - ")
+ ACE_TEXT("Intercepted InvalidConnection exception while configuring [%C] connection, rethrowing\n"),
+ name.c_str ()));
+ ex.name = name.c_str ();
+ throw;
+ }
+ }//if(name.compare(providedReference[i].name.in()) == 0)
+ }//for ( unsigned int i = 0; i < providedReference.length(); ++i )
+ }//for ( unsigned int j = 0; j < this->plan_.connection.length(); ++j )
+
+ this->configuration_complete_components ();
+
+ if (start)
+ {
+ this->start();
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::finishLaunch - finished\n")));
+}
+
+bool
+NodeApplication_Impl::is_local_facet (const ::Deployment::PlanConnectionDescription& conn)
+{
+ Deployment::Requirements const& deploy_req = conn.deployRequirement;
+ for (CORBA::ULong i = 0; i < deploy_req.length (); i++)
+ {
+ if (ACE_OS::strcmp (deploy_req[i].name, "edu.dre.vanderbilt.DAnCE.ConnectionType") == 0 &&
+ ACE_OS::strcmp (deploy_req[i].resourceType, "Local_Interface") == 0)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+Components::Cookie*
+NodeApplication_Impl::connect_receptacle (const ::Deployment::PlanConnectionDescription& conn,
+ Components::CCMObject_ptr facet,
+ const ACE_CString &facet_name,
+ CORBA::Object_ptr receptacle,
+ const ACE_CString& recep_name,
+ CIAO::Deployment::Container_ptr cont)
+{
+ Components::Cookie* res = 0;
+ try
+ {
+ if (this->is_local_facet (conn))
+ {
+ ::Components::CCMObject_var ccm_receptacle =
+ ::Components::CCMObject::_narrow (receptacle);
+
+ if (CORBA::is_nil (facet))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT ("Unable to narrow facet for local facet connection [%C] to receptable [%C]\n"),
+ facet_name.c_str (), recep_name.c_str ()));
+ throw ::Deployment::InvalidConnection ("", "");
+ }
+
+ if (CORBA::is_nil (ccm_receptacle))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT ("Unable to narrow receptacle for local facet connection [%C] to receptable [%C]\n"),
+ facet_name.c_str (), recep_name.c_str ()));
+ throw ::Deployment::InvalidConnection ("", "");
+ }
+
+ if (CORBA::is_nil (cont))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT ("Unable to narrow container for local facet connection [%C] to receptable [%C]\n"),
+ facet_name.c_str (), recep_name.c_str ()));
+ throw ::Deployment::InvalidConnection ("", "");
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT ("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT ("Connecting local facet [%C] to receptacle [%C]\n"),
+ facet_name.c_str (), recep_name.c_str ()));
+
+ cont->connect_local_facet (facet, facet_name.c_str (), ccm_receptacle, recep_name.c_str ());
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - connect finished\n")));
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT("connect SimplexReceptacle for [%C] started\n"), recep_name.c_str()));
+ if (CORBA::is_nil (facet))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT ("Object reference for facet to connect to [%C] was nil\n"),
+ recep_name.c_str ()));
+ throw ::Deployment::InvalidConnection ("",
+ "Provided facet reference was nil\n");
+ }
+
+ res = facet->connect (recep_name.c_str(), receptacle);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - connect finished\n")));
+ }
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
+ throw ::Deployment::StartError(conn.name.in (),
+ "Received InvalidName exception while connecting receptacle.");
+ }
+ catch (const ::Components::InvalidConnection& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
+ throw ::Deployment::InvalidConnection(conn.name.in (),
+ "InvalidConnection caught while connecting receptacle.");
+ }
+ catch (const ::Components::AlreadyConnected& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception ")
+ ACE_TEXT("for connection <%C>\n"),
+ conn.name.in ()));
+ throw ::Deployment::InvalidConnection(conn.name.in (),
+ "Caught AlreadyConnected exception while connecting receptacle");
+ }
+ catch (const ::Components::ExceededConnectionLimit& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
+ throw ::Deployment::InvalidConnection(conn.name.in (),
+ "Caught ExceededConnectionLimit exception while connecting receptacle.");
+ }
+ catch (const ::CORBA::Exception &ex )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle - ")
+ ACE_TEXT("Caught a CORBA exception while connecting <%C>: <%C>\n"),
+ conn.name.in (),
+ ex._info ().c_str ()));
+ throw ::Deployment::StartError(conn.name.in (),
+ ex._info ().c_str ());
+ }
+ return res;
+}
+
+Components::Cookie*
+NodeApplication_Impl::connect_receptacle_ext (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr facet)
+{
+ Components::Cookie* res = 0;
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle_ext - ")
+ ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
+ res = inst->connect (port_name.c_str(), facet);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_receptacle_ext - connect finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
+ throw ::Deployment::StartError("",
+ "Caught InvalidName exception while connecting external receptacle.");
+ }
+ catch (const ::Components::InvalidConnection& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught InvalidConnection exception while connecting external receptacle.");
+ }
+ catch (const ::Components::AlreadyConnected& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught AlreadyConnected exception while connecting external receptacle.");
+ }
+ catch (const ::Components::ExceededConnectionLimit& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_receptacle_ext - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught ExceededConnectionLimit while connecting external receptacle.");
+ }
+ return res;
+}
+
+void
+NodeApplication_Impl::connect_emitter (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr consumer)
+{
+ Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter - ")
+ ACE_TEXT("connect_consumer for %C started\n"), port_name.c_str()));
+ inst->connect_consumer (port_name.c_str(), event);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter - ")
+ ACE_TEXT("connect_consumer finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" ACE_TEXT(NodeApplication_Impl::connect_emitter - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidName exception\n")));
+ throw ::Deployment::StartError("",
+ "Caught InvalidName while connecting emitter.");
+ }
+ catch (const ::Components::AlreadyConnected& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught AlreadyConnected exception while connecting emitter");
+ }
+ catch (const ::Components::InvalidConnection& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught InvalidConnection while connecting emitter.");
+ }
+}
+
+void
+NodeApplication_Impl::connect_emitter_ext (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr consumer)
+{
+ Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - ")
+ ACE_TEXT("connect_emitter_ext for %C started\n"), port_name.c_str()));
+ inst->connect_consumer (port_name.c_str(), event);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - connect_emitter_ext finished\n")));
+ }
+ catch (const ::Components::AlreadyConnected& )
+ {
+ DANCE_DEBUG (6, (LM_WARNING, ACE_TEXT("NodeApplication_Impl::connect_emitter_ext - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught AlreadyConnected exception while connecting external emitter.");
+ }
+ catch (const ::Components::InvalidConnection& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_emitter_ext - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught InvalidConnection exception while connecting external emitter.");
+ }
+}
+
+Components::Cookie*
+NodeApplication_Impl::connect_publisher (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr consumer)
+{
+ DANCE_TRACE ("NodeApplication_Impl::connect_publisher");
+
+ if (CORBA::is_nil (inst))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_publisher - ")
+ ACE_TEXT("Provided a nil CCMObject reference while connecting port %C\n"),
+ port_name.c_str ()));
+ throw ::Deployment::InvalidConnection ();
+ }
+ Components::Cookie* res = 0;
+ Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
+ try
+ {
+ res = inst->subscribe (port_name.c_str(), event);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::connect_publisher - successfully subscribed %C\n"),
+ port_name.c_str ()));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidName exception\n")));
+ throw ::Deployment::StartError("", "Caught InvalidName exception while connecting publisher");
+ }
+ catch (const ::Components::InvalidConnection& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidConnection exception\n")));
+ throw ::Deployment::InvalidConnection("", "Caught InvalidConnection exception while connecting publisher.");
+ }
+ catch (const ::Components::ExceededConnectionLimit& )
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_Impl::connect_publisher - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::ExceededCOnnectionLimit exception\n")));
+ throw ::Deployment::InvalidConnection("", "Caught ExceededConnectionLimit exception while connecting publisher.");
+ }
+ return res;
+}
+
diff --git a/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
new file mode 100644
index 00000000000..615f2942fff
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
@@ -0,0 +1,217 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file NodeApplication_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Implementation of Deployment::NodeApplication
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+
+#ifndef NODEAPPLICATION_IMPL_H_
+#define NODEAPPLICATION_IMPL_H_
+
+#include "NodeApplication_Export.h"
+
+#include "ace/Containers_T.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "ccm/CCM_KeylessCCMHomeC.h"
+#include "ccm/ComponentsC.h"
+#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+
+#include "ccm/ComponentServer/CCM_ComponentServerC.h"
+#include "Deployment/Deployment_NodeApplicationS.h"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "Deployment/DeploymentC.h"
+#include "DAnCE/Deployment_common.h"
+
+#include <map>
+
+namespace DAnCE
+{
+
+ class NodeManager_Impl;
+
+ class NodeApplication_Export NodeApplication_Impl :
+ public virtual POA_Deployment::NodeApplication
+ {
+ public:
+ NodeApplication_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const ::Deployment::DeploymentPlan& plan,
+ const ACE_CString& node_name,
+ const PROPERTY_MAP &properties);
+
+ virtual ~NodeApplication_Impl();
+
+ virtual void finishLaunch (const ::Deployment::Connections & providedReference,
+ ::CORBA::Boolean start);
+
+ virtual void start (void);
+
+ ::Deployment::Connections * getAllConnections(void);
+
+ void init_components(void);
+
+ void configuration_complete_components (void);
+
+ void passivate_components (void);
+
+ void remove_components (void);
+
+ enum ERequestType
+ {
+ eCreateComponentServer,
+ eCreateContainer,
+ eInstallHome,
+ eCreateComponentWithConfigValues
+ };
+
+ enum EInstanceType
+ {
+ eHome,
+ eComponent,
+ eHomedComponent,
+ eContainer,
+ eComponentServer,
+ eInvalid
+ };
+
+ enum EComponentState
+ {
+ eUninstalled,
+ eInstalled,
+ eConfigured,
+ eActive,
+ ePassive,
+ eRemoved,
+ eInvalidState
+ };
+
+ protected:
+ void init(void);
+
+ struct Container;
+
+ struct Instance
+ {
+ Instance (EInstanceType type = eInvalid,
+ Container *cont = 0,
+ CORBA::ULong idd = 0,
+ CORBA::ULong mdd = 0) :
+ state (eUninstalled),
+ type (type), idd_idx (idd), mdd_idx (mdd), home(0),
+ container (cont)
+ {
+ }
+
+ EComponentState state;
+ EInstanceType type;
+ CORBA::ULong idd_idx;
+ CORBA::ULong mdd_idx;
+ CORBA::Object_var ref;
+ Instance *home;
+ Container *container;
+ };
+
+ typedef ACE_Array<Instance> INSTANCES;
+ typedef ACE_Array<Instance *> INSTANCE_PTRS;
+
+ struct Container
+ {
+ INSTANCES homes;
+ INSTANCES components;
+ ::Deployment::Properties properties;
+ Components::Deployment::Container_var ref;
+ };
+
+ typedef ACE_Array<Container> CONTAINERS;
+
+ struct ComponentServer
+ {
+ ComponentServer (void) : properties (0)
+ {
+ }
+
+ Instance instance;
+ CONTAINERS containers;
+ const ::Deployment::Properties *properties;
+ Components::Deployment::ComponentServer_var ref;
+ };
+
+ typedef ACE_Array<ComponentServer> COMPONENTSERVERS;
+
+ EInstanceType get_instance_type (const ::Deployment::Properties& prop) const;
+
+ typedef std::map <std::string, int> ColocationMap;
+
+ /// Creates colocation groups for all components in this node's deployment.
+ /// Resulting map has mappings of component ids to appropriate server.
+ /// As a postcondition, the size of the servers_ array is increased appropriately.
+ ColocationMap create_colocation_groups (void);
+
+ void create_component_server (size_t index);
+
+ void create_container (size_t server, size_t container);
+
+ void install_home (Container &cont, Instance &inst);
+
+ void install_component (Container &cont, Instance &inst);
+
+ void install_homed_component (Container &cont, Instance &inst);
+
+ void store_instance_ior (Instance &inst);
+
+ bool is_local_facet (const ::Deployment::PlanConnectionDescription& conn);
+
+ Components::Cookie* connect_receptacle (const ::Deployment::PlanConnectionDescription& conn,
+ Components::CCMObject_ptr facet,
+ const ACE_CString &facet_name,
+ CORBA::Object_ptr receptacle,
+ const ACE_CString& receptacle_name,
+ CIAO::Deployment::Container_ptr cont);
+
+ Components::Cookie* connect_receptacle_ext (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr facet);
+
+ void connect_emitter (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr consumer);
+
+ void connect_emitter_ext (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr consumer);
+
+ Components::Cookie* connect_publisher (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr consumer);
+
+ CORBA::ORB_var orb_;
+
+ PortableServer::POA_var poa_;
+
+ const ::Deployment::DeploymentPlan& plan_;
+
+ auto_ptr<CIAO::Deployment::CIAO_ServerActivator_i> activator_;
+
+ ACE_CString node_name_;
+
+ PROPERTY_MAP properties_;
+
+ COMPONENTSERVERS servers_;
+
+ INSTANCE_PTRS instances_;
+
+ CosNaming::NamingContext_var instance_nc_;
+ };
+}
+#endif /*NODEAPPLICATION_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
new file mode 100644
index 00000000000..d8bd4e68725
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
@@ -0,0 +1,13 @@
+// -*- MPC -*-
+// $Id$
+
+project (DAnCE_NodeApplicationManager) : dance_lib, naming, dance_nodeapplicationmanager_skel, \
+ dynamicinterface, ccm_componentserver_svnt, ciao_cs_client, \
+ dance_nodeapplication, avoids_ace_for_tao {
+ sharedname = DAnCE_NodeApplicationManager
+ dynamicflags = NODEAPPLICATIONMANAGER_BUILD_DLL
+
+ Source_Files {
+ NodeApplicationManager_Impl.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Export.h b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Export.h
new file mode 100644
index 00000000000..b86e93b49ab
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl NodeApplicationManager
+// ------------------------------
+#ifndef NODEAPPLICATIONMANAGER_EXPORT_H
+#define NODEAPPLICATIONMANAGER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (NODEAPPLICATIONMANAGER_HAS_DLL)
+# define NODEAPPLICATIONMANAGER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && NODEAPPLICATIONMANAGER_HAS_DLL */
+
+#if !defined (NODEAPPLICATIONMANAGER_HAS_DLL)
+# define NODEAPPLICATIONMANAGER_HAS_DLL 1
+#endif /* ! NODEAPPLICATIONMANAGER_HAS_DLL */
+
+#if defined (NODEAPPLICATIONMANAGER_HAS_DLL) && (NODEAPPLICATIONMANAGER_HAS_DLL == 1)
+# if defined (NODEAPPLICATIONMANAGER_BUILD_DLL)
+# define NodeApplicationManager_Export ACE_Proper_Export_Flag
+# define NODEAPPLICATIONMANAGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define NODEAPPLICATIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* NODEAPPLICATIONMANAGER_BUILD_DLL */
+# define NodeApplicationManager_Export ACE_Proper_Import_Flag
+# define NODEAPPLICATIONMANAGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define NODEAPPLICATIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* NODEAPPLICATIONMANAGER_BUILD_DLL */
+#else /* NODEAPPLICATIONMANAGER_HAS_DLL == 1 */
+# define NodeApplicationManager_Export
+# define NODEAPPLICATIONMANAGER_SINGLETON_DECLARATION(T)
+# define NODEAPPLICATIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* NODEAPPLICATIONMANAGER_HAS_DLL == 1 */
+
+// Set NODEAPPLICATIONMANAGER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (NODEAPPLICATIONMANAGER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define NODEAPPLICATIONMANAGER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define NODEAPPLICATIONMANAGER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !NODEAPPLICATIONMANAGER_NTRACE */
+
+#if (NODEAPPLICATIONMANAGER_NTRACE == 1)
+# define NODEAPPLICATIONMANAGER_TRACE(X)
+#else /* (NODEAPPLICATIONMANAGER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define NODEAPPLICATIONMANAGER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (NODEAPPLICATIONMANAGER_NTRACE == 1) */
+
+#endif /* NODEAPPLICATIONMANAGER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
new file mode 100644
index 00000000000..4ecb66face9
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
@@ -0,0 +1,170 @@
+// $Id$
+
+
+#include "ace/streams.h"
+#include "DAnCE/DAnCE/DAnCE_PropertiesC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+#include "NodeApplicationManager_Impl.h"
+#include "NodeApplication/NodeApplication_Impl.h"
+#include "NodeManager/NodeManager_Impl.h"
+
+using namespace DAnCE;
+
+NodeApplicationManager_Impl::NodeApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const Deployment::DeploymentPlan& plan,
+ const ACE_CString& node_name,
+ const PROPERTY_MAP &properties)
+ : plan_ (plan),
+ orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ application_ (0),
+ node_name_ (node_name),
+ properties_ ()
+{
+ DANCE_TRACE ("NodeApplicationManager_Impl::NodeApplicationManager_Impl");
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT(" NodeApplicationManager_Impl::NodeApplicationManager_Impl - ")
+ ACE_TEXT("Initializing for node '%C' and plan '%C' starting...\n"),
+ node_name.c_str(),
+ plan_.UUID.in()));
+
+ PROPERTY_MAP::const_iterator i = properties.begin ();
+ while (!i.done ())
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::NodeApplicationManager_Impl - ")
+ ACE_TEXT("Binding value for property %C\n"), i->key ().c_str ()));
+ this->properties_.bind (i->key (), i->item ());
+ i.advance ();
+ }
+}
+
+NodeApplicationManager_Impl::~NodeApplicationManager_Impl()
+{
+ DANCE_TRACE ("NodeApplicationManager_Impl::~NodeApplicationManager_Impl");
+
+ try
+ {
+ if (this->application_ != 0)
+ {
+ CORBA::Object_var app =
+ this->poa_->servant_to_reference (this->application_);
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (app);
+ this->poa_->deactivate_object (id);
+
+ delete this->application_;
+ this->application_ = 0;
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::~NodeApplicationManager_Impl - ")
+ ACE_TEXT("Caught exception in NodeApplicationManager destructor\n")));
+ }
+}
+
+Deployment::Application_ptr
+NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &,
+ Deployment::Connections_out providedReference)
+{
+ DANCE_TRACE ("NodeApplicationManager_Impl::startLaunch");
+
+ // Creating NodeApplication object
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Initializing NodeApplication\n")));
+ ACE_NEW_THROW_EX (this->application_,
+ NodeApplication_Impl (this->orb_.in(),
+ this->poa_.in(),
+ this->plan_,
+ this->node_name_,
+ this->properties_),
+ CORBA::NO_MEMORY ());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Instructing NodeApplication to initialize components.\n")));
+
+ this->application_->init_components();
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Collecting connection references\n")));
+
+ providedReference = this->application_->getAllConnections();
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Activating NodeApplication servant\n")));
+
+ PortableServer::ObjectId_var as_id =
+ this->poa_->activate_object (this->application_);
+
+ CORBA::Object_var as_obj = this->poa_->id_to_reference (as_id.in ());
+ Deployment::Application_var app = Deployment::Application::_narrow (as_obj.in ());
+
+ return app._retn ();
+}
+
+void
+NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr application)
+{
+ DANCE_TRACE ("NodeApplicationManager_Impl::destroyApplication");
+
+ try
+ {
+ if (!application->_is_equivalent (this->poa_->servant_to_reference (this->application_)))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ")
+ ACE_TEXT("application is equivalent to current application\n")));
+ throw ::Deployment::StopError();
+ }
+
+ CORBA::Any val;
+
+ if (this->properties_.find (DAnCE::STANDALONE_NM, val) == 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ")
+ ACE_TEXT("Found STANDALONE_NM property\n")));
+
+ CORBA::Boolean standalone = false;
+
+ val >>= CORBA::Any::to_boolean (standalone);
+
+ this->application_->passivate_components ();
+ this->application_->remove_components ();
+ }
+
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (application);
+ this->poa_->deactivate_object (id);
+
+ delete this->application_;
+ this->application_ = 0;
+ }
+ catch (const CORBA::SystemException &)
+ {
+ throw;
+ }
+ catch (const Deployment::StopError &)
+ {
+ throw;
+ }
+ catch (const CORBA::UserException &e)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with UserException %C(%C) \"%C\"\n"),
+ e._name(), e._rep_id(), e._info().c_str()));
+ throw Deployment::StopError(e._name(), e._info().c_str());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with unknown exception.\n")));
+ throw Deployment::StopError();
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
new file mode 100644
index 00000000000..d72570f30e5
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file NodeApplicationManager_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Implementation of POA_Deployment::NodeApplicationManager
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef NODEAPPLICATIONMANAGER_IMPL_H_
+#define NODEAPPLICATIONMANAGER_IMPL_H_
+
+#include "NodeApplicationManager_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "Deployment/Deployment_NodeApplicationManagerS.h"
+#include "NodeApplication/NodeApplication_Impl.h"
+
+namespace DAnCE
+ {
+ class NodeManager_Impl;
+
+ class NodeApplicationManager_Export NodeApplicationManager_Impl :
+ public virtual POA_Deployment::NodeApplicationManager
+ {
+ public:
+ NodeApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const Deployment::DeploymentPlan& plan,
+ const ACE_CString& name,
+ const PROPERTY_MAP &properties);
+
+ virtual ~NodeApplicationManager_Impl();
+
+ virtual Deployment::Application_ptr
+ startLaunch (const Deployment::Properties & configProperty,
+ Deployment::Connections_out providedReference);
+
+ virtual void destroyApplication (Deployment::Application_ptr);
+ private:
+ Deployment::DeploymentPlan plan_;
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ NodeApplication_Impl* application_;
+ ACE_CString node_name_;
+ PROPERTY_MAP properties_;
+ };
+}
+#endif /*NODEAPPLICATIONMANAGER_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/NodeManager/NodeManager.mpc b/modules/CIAO/DAnCE/NodeManager/NodeManager.mpc
new file mode 100644
index 00000000000..bfdacd62558
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager.mpc
@@ -0,0 +1,13 @@
+// -*- MPC -*-
+// $Id$
+
+project(Node_Manager_Exec) : utils, dance_exe, naming, avoids_ace_for_tao, \
+ dance_nodeapplicationmanager, dance_nodemanager_skel, ciao_logger {
+ exename = dance_node_manager
+
+ Source_Files {
+ NodeManager_Impl.cpp
+ Node_Manager_Module.cpp
+ Node_Manager.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
new file mode 100644
index 00000000000..a49af0d743b
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
@@ -0,0 +1,175 @@
+// $Id$
+
+#include "NodeManager_Impl.h"
+#include "ace/streams.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "ace/OS_Memory.h"
+
+#ifdef GEN_OSTREAM_OPS
+#include <iostream>
+#include <sstream>
+#endif /* GEN_OSTREAM_OPS */
+
+namespace DAnCE
+{
+ NodeManager_Impl::NodeManager_Impl(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const char* name,
+ const PROPERTY_MAP &properties)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ name_ (name),
+ properties_ (properties.current_size ())
+ {
+ DANCE_TRACE ( "NodeManager_Impl::NodeManager_Impl");
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeManager_impl::NodeManager_impl has been created\n")));
+
+ PROPERTY_MAP::const_iterator i = properties.begin ();
+ while (!i.done ())
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_Impl::NodeManager_Impl - ")
+ ACE_TEXT("Binding property %C provided by caller.\n"), i->key ().c_str ()));
+ this->properties_.bind (i->key (), i->item ());
+ i.advance ();
+ }
+ }
+
+ NodeManager_Impl::~NodeManager_Impl()
+ {
+ DANCE_TRACE ( "NodeManager_Impl::~NodeManager_Impl()");
+ for (TManagers::iterator iter = this->managers_.begin();
+ iter != this->managers_.end();
+ ++iter)
+ {
+ try
+ {
+ PortableServer::ObjectId_var id = this->poa_->servant_to_id ( (*iter).int_id_);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - Deactivating NodeApplicationManager %C\n"),
+ (*iter).ext_id_.c_str ()));
+ this->poa_->deactivate_object (id.in());
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - deleting NodeApplicationManager\n")));
+ delete (*iter).int_id_;
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - NodeApplicationManager deleted\n")));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_WARNING, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - Caught exception while removing ")
+ ACE_TEXT("NodeApplicationManager %C\n"), (*iter).ext_id_.c_str ()));
+ }
+ }
+ }
+
+ void
+ NodeManager_Impl::joinDomain (const ::Deployment::Domain & /*theDomain*/,
+ ::Deployment::TargetManager_ptr /*manager*/,
+ ::Deployment::Logger_ptr /*log*/,
+ ::CORBA::Long /*updateInterval*/)
+ {
+ DANCE_TRACE ( "NodeManager_Impl::joinDomain");
+ DANCE_DEBUG (6, (LM_ERROR, DLINFO ACE_TEXT("NodeManager_Impl::joinDomain - ")
+ ACE_TEXT("joinDomain not implemented\n")));
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ NodeManager_Impl::leaveDomain ()
+ {
+ DANCE_TRACE ( "NodeManager_Impl::leaveDomain");
+ DANCE_DEBUG (6, (LM_ERROR, DLINFO ACE_TEXT("NodeManager_Impl::leaveDomain - ")
+ ACE_TEXT("leave not implemented\n")));
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Deployment::NodeApplicationManager_ptr
+ NodeManager_Impl::preparePlan (const ::Deployment::DeploymentPlan & plan,
+ ::Deployment::ResourceCommitmentManager_ptr /*resourceCommitment*/)
+ {
+ DANCE_TRACE ( "NodeManager_Impl::preparePlan");
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - ")
+ ACE_TEXT("started for node %C and plan %C\n"),
+ this->name_.c_str(), plan.UUID.in()));
+
+#ifdef GEN_OSTREAM_OPS
+ {
+ std::ostringstream plan_stream;
+ plan_stream << plan << std::endl;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "NodeManager_impl::preparePlan - %C",
+ plan_stream.str ().c_str ()));
+ }
+#endif /* GEN_OSTREAM_OPS */
+
+ // resourceCommitment will be used on next development stage
+ if (0 == this->managers_.find (plan.UUID.in()))
+ {
+ // What should we do here if we already have application for this plan?
+ // Probably it is mistake because we should previously call destroyApplication
+ // before performe relaunching of application
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - ")
+ ACE_TEXT("ApplicationManager for UUID %C already exists\n"),
+ plan.UUID.in ()));
+ throw ::Deployment::PlanError();
+ }
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - creating NodeApplicationManager...\n")));
+ NodeApplicationManager_Impl* manager = 0;
+ ACE_NEW_THROW_EX (manager,
+ NodeApplicationManager_Impl (this->orb_.in(),
+ this->poa_.in(),
+ plan,
+ this->name_,
+ this->properties_),
+ CORBA::NO_MEMORY());
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - activating NodeApplicationManager...\n")));
+ PortableServer::ObjectId_var id = this->poa_->activate_object (manager);
+ CORBA::Object_var nam = this->poa_->id_to_reference (id.in());
+
+ // There is an idea to check if plan.UUID really exists
+ this->managers_.bind (plan.UUID.in(), manager);
+ // narrow should return a nil reference if it fails.
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - NodeApplicationManager for plan %C completed\n"),
+ plan.UUID.in ()));
+ return Deployment::NodeApplicationManager::_narrow (nam.in ());
+ }
+
+ void
+ NodeManager_Impl::destroyManager (::Deployment::NodeApplicationManager_ptr appManager)
+ {
+ DANCE_TRACE ( "NodeManager_Impl::destroyManager");
+
+ for (TManagers::iterator iter = this->managers_.begin();
+ iter != this->managers_.end();
+ ++iter)
+ {
+ if (appManager->_is_equivalent (this->poa_->servant_to_reference ( (*iter).int_id_)))
+ {
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (appManager);
+ this->poa_->deactivate_object (id.in());
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - deleting NodeApplicationManager\n")));
+ delete (*iter).int_id_;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - NodeApplicationManager deleted\n")));
+ this->managers_.unbind ( (*iter).ext_id_);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - finished\n")));
+ return;
+ }
+ }
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - ")
+ ACE_TEXT("correponding NodeApplicationManager cannot be found\n")));
+ throw ::Deployment::InvalidReference();
+ }
+
+ ::Deployment::Resources *
+ NodeManager_Impl::getDynamicResources ()
+ {
+ DANCE_TRACE ( "NodeManager_Impl::getDynamicResources ()");
+ DANCE_DEBUG (6, (LM_ERROR, DLINFO ACE_TEXT("NodeManager_Impl::getDynamicResources - ")
+ ACE_TEXT("getDynamicResources not implemented\n")));
+ throw CORBA::NO_IMPLEMENT ();
+ return 0;
+ }
+} //DAnCE
+
diff --git a/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.h b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.h
new file mode 100644
index 00000000000..11029803189
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.h
@@ -0,0 +1,66 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file NodeManager_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Implementation of POA_Deployment::NodeManager
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NODEMANAGER_IMPL_H_
+#define NODEMANAGER_IMPL_H_
+
+#include "tao/Object.h"
+#include "tao/ORB.h"
+#include "DAnCE/Deployment_common.h"
+#include "Deployment/Deployment_NodeManagerS.h"
+#include "NodeApplicationManager/NodeApplicationManager_Impl.h"
+#include "ace/Map_Manager.h"
+
+namespace DAnCE
+{
+ class NodeManager_Impl :
+ public virtual POA_Deployment::NodeManager
+ {
+ public:
+ /// The fixed listener port is caused by the usage of CCM Object locator
+ NodeManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const char* name,
+ const PROPERTY_MAP &options);
+
+ virtual ~NodeManager_Impl();
+
+ virtual void joinDomain (const ::Deployment::Domain & theDomain,
+ ::Deployment::TargetManager_ptr manager,
+ ::Deployment::Logger_ptr log,
+ ::CORBA::Long updateInterval);
+
+ virtual void leaveDomain (void);
+
+ virtual ::Deployment::NodeApplicationManager_ptr preparePlan (
+ const ::Deployment::DeploymentPlan & plan,
+ ::Deployment::ResourceCommitmentManager_ptr resourceCommitment);
+
+ virtual void destroyManager (::Deployment::NodeApplicationManager_ptr appManager);
+
+ virtual ::Deployment::Resources * getDynamicResources (void);
+
+ private:
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ ACE_CString name_;
+ /// @todo, see if we can use a _ptr
+ typedef ACE_Map_Manager<ACE_CString, NodeApplicationManager_Impl*, ACE_Null_Mutex > TManagers;
+ TManagers managers_;
+ PROPERTY_MAP properties_;
+ };
+}
+
+#endif /*NODEMANAGER_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/NodeManager/Node_Manager.cpp b/modules/CIAO/DAnCE/NodeManager/Node_Manager.cpp
new file mode 100644
index 00000000000..76fffc8369a
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/Node_Manager.cpp
@@ -0,0 +1,73 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "ciao/Logger/Logger_Service.h"
+#include "Node_Manager_Module.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ // Also initialize CIAO logger since we reuse parts of CIAO in the nodemanager
+ CIAO::Logger_Service
+ * clf = ACE_Dynamic_Service<CIAO::Logger_Service>::instance ("CIAO_Logger");
+
+ if (clf)
+ {
+ clf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager - initializing module instance\n")));
+
+ DAnCE_NodeManager_Module nm;
+ CORBA::Object_var obj = nm.init (orb.in (), argc, argv);
+
+ if (!CORBA::is_nil (obj.in ()))
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager - running ORB\n")));
+ orb->run ();
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager - destroying ORB\n")));
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("NodeManager");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "NodeManager - Error: Unknown exception.\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
+
diff --git a/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp
new file mode 100644
index 00000000000..d2e21614bd9
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp
@@ -0,0 +1,598 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+#include "tao/StringSeqC.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "ciao/Valuetype_Factories/Cookies.h"
+#include "ciao/ComponentServer/CIAO_PropertiesC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/DAnCE/DAnCE_PropertiesC.h"
+#include "Node_Manager_Module.h"
+#include "NodeManager_Impl.h"
+
+ACE_RCSID (DAnCE,
+ Node_Manager_Module,
+ "$Id$")
+
+namespace DAnCE
+{
+ namespace Node_Manager
+ {
+ bool
+ write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
+ {
+ FILE* ior_output_file_ = ACE_OS::fopen (ior_file_name, ACE_TEXT("w"));
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_, "%s", ior);
+ ACE_OS::fclose (ior_output_file_);
+ return true;
+ }
+ return false;
+ }
+ }
+}
+
+DAnCE_NodeManager_Module::SOptions::SOptions(void)
+ : process_ns_ (false),
+ process_ns_file_ (0),
+ create_plan_ns_ (false),
+ create_plan_ns_ior_ (0),
+ rebind_plan_ns_ (false),
+ rebind_plan_ns_ior_ (0),
+ cs_path_ (ACE_TEXT("ciao_componentserver")),
+ timeout_ (5),
+ standalone_ (false),
+ server_args_ (0),
+ domain_nc_ (0),
+ instance_nc_ (0)
+{
+}
+
+DAnCE_NodeManager_Module::DAnCE_NodeManager_Module (void)
+{
+ DANCE_TRACE("DAnCE_NodeManager_Module::DAnCE_NodeManager_Module");
+}
+
+DAnCE_NodeManager_Module::~DAnCE_NodeManager_Module (void)
+{
+ DANCE_TRACE ("DAnCE_NodeManager_Module::~DAnCE_NodeManager_Module");
+
+ for (Servant_Map::iterator it = this->nm_map_.begin ();
+ it != this->nm_map_.end ();
+ ++it)
+ {
+ delete (*it).int_id_;
+ }
+}
+
+const char *
+DAnCE_NodeManager_Module::usage (void)
+{
+ DANCE_TRACE ("DAnCE_NodeManager_Module::usage");
+ return "Node Manager Options:\n"
+ "\t-e|--exec-mgr\t\t [execution manager ior file name]\n"
+ "\t-n|--node-mgr\t\t <node name> [=node manager ior file name]\n"
+ // "\t-p|--process-ns\t\t\t [file name] create process name service and store its ior to file name\n"
+ "\t-c|--create-plan-ns [NC] create plan objects (components and ports) representation in name context with ior NC\n"
+ "\t-r|--rebind-plan-ns [NC] bind plan representation name context to NC\n"
+ "\t-i|--port-indirection\t enable plan objects indirection via servant locator\n"
+ "\t-s|--server-executable\t default component server executable\n"
+ "\t--server-args\t\t additional arguments to supply to the component server\n"
+ "\t--standalone-nm\t\t Indicates that this NodeManager is not managed by an ExecutionManager\n"
+ "\t-t|--timeout\t\t default timeout in seconds to wait for component server spawn\n"
+ "\t-d|--domain-nc [NC]\t Default naming context for domain objects.\n"
+ "\t--instance-nc [NC]\t Default naming context for instance registration directives. No argument indicates Domain NC.\n"
+ "\t-h|help\t\t\t print this help message\n";
+}
+
+bool
+DAnCE_NodeManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
+{
+ ACE_Get_Opt get_opts (argc,
+ argv,
+ ACE_TEXT("e:n:p::c::r::is:t:h"),
+ 0,
+ 0,
+ ACE_Get_Opt::RETURN_IN_ORDER);
+
+ get_opts.long_option (ACE_TEXT("exec-mgr"), 'e', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("node-mgr"), 'n', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("process-ns"), 'p', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("create-plan-ns"), 'c', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("rebind-plan-ns"), 'r', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opts.long_option (ACE_TEXT("port-indirection"), 'i', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("server-executable"), 's', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("server-args"), ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("standalone-nm"), ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("timeout"), 't', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("domain-nc"), 'd', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("instance-nc"), ACE_Get_Opt::ARG_REQUIRED);
+
+ //get_opts.long_option ("help", '?');
+
+ int c;
+ while ( (c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'n':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Provided Node Manager name: %s\n"), get_opts.opt_arg ()));
+ this->options_.node_managers_.push_back (get_opts.opt_arg ());
+ break;
+
+ case 'p':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to create process ns with file %s\n"), get_opts.opt_arg ()));
+ this->options_.process_ns_ = true;
+ this->options_.process_ns_file_ = get_opts.opt_arg ();
+ break;
+
+ case 'c':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to create plan NS in context: %s\n"), get_opts.opt_arg ()));
+ this->options_.create_plan_ns_ = true;
+ this->options_.create_plan_ns_ior_ = get_opts.opt_arg ();
+ break;
+
+ case 'r':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to rebind plan NS in context: %s\n"), get_opts.opt_arg ()));
+ this->options_.rebind_plan_ns_ = true;
+ this->options_.rebind_plan_ns_ior_ = get_opts.opt_arg ();
+ break;
+
+ case 'i':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to create port indirection service\n")));
+ this->options_.port_indirection_ = true;
+ break;
+
+ case 's':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided component server executable:%s\n"),
+ get_opts.opt_arg ()));
+ this->options_.cs_path_ = get_opts.opt_arg ();
+ break;
+
+ case 't':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided component server spawn timeout:%s\n"),
+ get_opts.opt_arg ()));
+ this->options_.timeout_ = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'd':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Binding to provided Domain Naming Context: '%s'\n"),
+ get_opts.opt_arg ()));
+ this->options_.domain_nc_ = get_opts.opt_arg ();
+ break;
+
+ case 'h':
+ //case '?': // Display help for use of the server.
+ //default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ this->usage (),
+ argv [0], c),
+ false);
+ break;
+
+ case 0:
+ if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("standalone-nm")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Found option directing NodeManager to run as standalone entity.\n")));
+ this->options_.standalone_ = true;
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (),
+ ACE_TEXT("server-args")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided compoent server arguments: '%s'\n"),
+ get_opts.opt_arg ()));
+ this->options_.server_args_ = get_opts.opt_arg ();
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (),
+ ACE_TEXT("instance-nc")) == 0)
+ {
+ if (get_opts.opt_arg () == 0)
+ {
+ if (this->options_.domain_nc_ == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("ERROR: instance-nc provided no argument, but domain-nc did not appear before.\n")));
+ DANCE_ERROR_RETURN (1, (LM_ERROR, this->usage (), argv[0], c), false);
+ }
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instance NC defaulting to Domain NC\n")));
+ this->options_.instance_nc_ = this->options_.domain_nc_;
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided instance NC: %s\n"),
+ get_opts.opt_arg ()));
+ this->options_.instance_nc_ = get_opts.opt_arg ();
+ }
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("ERROR: unknown long option %s\n"),
+ get_opts.long_option ()));
+ }
+
+ break;
+
+ default:
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ignoring unknown option %i\n"),
+ c));
+ }
+ }
+ return true;
+}
+
+CORBA::Object_ptr
+DAnCE_NodeManager_Module::init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ try
+ {
+ if (CORBA::is_nil(orb))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("Attempted to create Node Manager with a nil orb.\n")));
+ return CORBA::Object::_nil();
+ }
+
+ if (CORBA::is_nil(this->orb_.in()))
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("NM's orb is nil.\n")));
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ }
+ else if (ACE_OS::strcmp(orb->id(), this->orb_->id()) != 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("Resetting NM's orb.\n")));
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ this->domain_nc_ = CosNaming::NamingContext::_nil();
+ }
+
+ if (!this->parse_args (argc, argv))
+ {
+ return CORBA::Object::_nil ();
+ }
+
+ this->register_value_factories ();
+ this->create_poas ();
+
+ if (this->options_.domain_nc_)
+ {
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("Resolving DomainNC.\n")));
+ CORBA::Object_var domain_obj = this->orb_->string_to_object (this->options_.domain_nc_);
+ if (!CORBA::is_nil (domain_obj.in ()))
+ {
+ this->domain_nc_ = CosNaming::NamingContext::_narrow (domain_obj.in());
+ if (CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR,DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ catch (const CORBA::Exception&)
+ {
+ DANCE_DEBUG (6, (LM_WARNING, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("DomainNC context not found!\n")));
+ }
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT("Resolving plan NS naming context.\n")));
+ CosNaming::NamingContext_var rebind_nc;
+ if (this->options_.rebind_plan_ns_)
+ {
+ if (!this->options_.create_plan_ns_)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Rebind_plan_ns option is enabled but Create_plan_ns is not.\n")));
+ return CORBA::Object::_nil();
+ }
+ CORBA::Object_var tmp_obj;
+ if (0 != this->options_.rebind_plan_ns_ior_)
+ {
+ tmp_obj = orb->string_to_object (this->options_.rebind_plan_ns_ior_);
+ rebind_nc = CosNaming::NamingContext::_narrow (tmp_obj);
+ }
+ else
+ {
+ if (CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("The rebind plan is enabled but neither NC ")
+ ACE_TEXT ("nor DomainNC are not supplied. No rebinding will be done.\n")
+ ACE_TEXT ("Use the \"-rebind-plan-ns NC ior\" ")
+ ACE_TEXT ("or \"-ORBInitRef DomainNC\" option.\n")));
+ return CORBA::Object::_nil ();
+ }
+ rebind_nc = CosNaming::NamingContext::_duplicate (this->domain_nc_.in ());
+ }
+ }
+
+ // Initialize IOR table
+ CORBA::Object_var table_object = orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter = IORTable::Table::_narrow (table_object.in ());
+
+ if (CORBA::is_nil (adapter.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Unable to RIR the IORTable.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ // Creating in process nameservice
+ CosNaming::NamingContext_var plan_nc;
+ if (this->options_.create_plan_ns_)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Resolving plan-specific naming context.\n")));
+ CORBA::Object_var naming_obj;
+ if (0 != this->options_.create_plan_ns_ior_)
+ {
+ naming_obj = orb->string_to_object (this->options_.create_plan_ns_ior_);
+ plan_nc = CosNaming::NamingContext::_narrow (naming_obj.in());
+ if (CORBA::is_nil (plan_nc.in()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Failed trying to narrow naming context ")
+ ACE_TEXT ("for dance creating plan NC.\n")
+ ACE_TEXT ("Use the \"--create-plan-ns NC ior\" ")
+ ACE_TEXT ("or \"--process-ns\" option.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ else if (this->options_.process_ns_)
+ {
+ const int argc_ns = 1;
+ ACE_TCHAR* argv_ns[argc_ns];
+ argv_ns[0] = argv[0];
+ naming_obj = orb->resolve_initial_references ("NameService");
+ if (0 != this->options_.process_ns_file_)
+ {
+ CORBA::String_var ior = orb->object_to_string (naming_obj.in ());
+ DAnCE::Node_Manager::write_IOR (this->options_.process_ns_file_, ior.in ());
+ }
+ plan_nc = CosNaming::NamingContext::_narrow (naming_obj.in ());
+ if (CORBA::is_nil (plan_nc.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Fails trying to narrow naming context ")
+ ACE_TEXT ("for dance creating plan NC.\n")
+ ACE_TEXT ("Use the \"--create-plan-ns NC ior\" ")
+ ACE_TEXT ("or \"--process-ns\" option.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ else if (CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR,DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("The create plan is enabled but neither NC ior ")
+ ACE_TEXT ("nor --process-ns or DomainNC option are not supplied.\n")
+ ACE_TEXT ("Use the \"--create-plan-ns NC ior\", \"--process-ns\" ")
+ ACE_TEXT ("or \"-ORBInitRef DomainNC\" option.\n")));
+ return CORBA::Object::_nil ();
+ }
+ else
+ {
+ plan_nc = CosNaming::NamingContext::_duplicate (this->domain_nc_.in ());
+ }
+ }
+
+ // Make sure that we have only one Node Manager
+ if (this->options_.node_managers_.size () != 1)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("For now only one node manager creation is supported.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("DAnCE_NodeManager::run_main - creating NodeManager for node %C\n"),
+ this->options_.node_managers_[0].c_str()));
+
+ // Parsing Node name and node manager ior file name
+ ACE_TString node_name = this->options_.node_managers_[0].c_str ();
+ ACE_TString node_file;
+ size_t npos = node_name.find ('=');
+ if (ACE_CString::npos != npos)
+ {
+ node_file = node_name.substring (npos + 1, node_name.length() - npos + 1);
+ node_name = node_name.substring (0, npos);
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Creating node named '%s' and outputting ior to file '%s'\n"),
+ node_name.c_str (),
+ node_file.c_str ()));
+
+ //Creating node manager servant
+ DAnCE::NodeManager_Impl * nm = 0;
+ if (this->nm_map_.find (node_name, nm) == -1)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Allocating new NodeManger servant instance for NodeManager\n")));
+ int size = 64;
+ DAnCE::PROPERTY_MAP properties (size);
+ this->create_nm_properties (properties);
+
+ ACE_NEW_RETURN (nm,
+ DAnCE::NodeManager_Impl (orb,
+ this->root_poa_.in (),
+ ACE_TEXT_ALWAYS_CHAR (node_name.c_str()),
+ properties),
+ CORBA::Object::_nil ());
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("New NodeManger servant instance for NodeManager allocated.\n")));
+ this->nm_map_.bind (node_name, nm);
+ }
+
+ ACE_CString node_manager_oid = ACE_TEXT_ALWAYS_CHAR ((node_name + ACE_TEXT (".NodeManager")).c_str ());
+
+ // Registering servant in poa
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId (node_manager_oid.c_str());
+ this->nm_poa_->activate_object_with_id (oid, nm);
+
+ // Getting node manager ior
+ CORBA::Object_var nm_obj = this->nm_poa_->id_to_reference (oid.in ());
+ CORBA::String_var ior = orb->object_to_string (nm_obj.in ());
+
+ // Binding ior to IOR Table
+ adapter->bind (node_manager_oid.c_str (), ior.in ());
+
+ // Binding node manager to DomainNC
+ if (!CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Registering NM in NC as \"%C.NodeManager\".\n"), node_name.c_str ()));
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (node_name.c_str ()));
+ name[0].kind = CORBA::string_dup ("NodeManager");
+ this->domain_nc_->rebind (name, nm_obj.in ());
+ }
+
+ // Writing ior to file
+ if (0 != node_file.length ())
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Writing node IOR %C to file %C.\n"), node_file.c_str (), ior.in ()));
+ if (!DAnCE::Node_Manager::write_IOR (node_file.c_str (), ior.in ()))
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Error: Unable to write IOR to file %C\n"),
+ node_file.c_str ()));
+ }
+
+ // Activate POA manager
+ PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
+ mgr->activate ();
+
+ // Finishing Deployment part
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO
+ ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("DAnCE_NodeManager is running...\n")));
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("NodeManager IOR: %C\n"), ior.in ()));
+
+ return nm_obj._retn ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("DAnCE_NodeManager::main\t\n");
+ return CORBA::Object::_nil ();
+ }
+}
+
+void
+DAnCE_NodeManager_Module::register_value_factories (void)
+{
+ DANCE_TRACE("DAnCE_Node_Manager_Module::register_value_factories (void)");
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::init - ")
+ ACE_TEXT ("Registering Cookie value factory.\n")));
+ CORBA::ValueFactory_var vf = new Components::Cookie_init();
+ vf = this->orb_->register_value_factory ("IDL:omg.org/Components/Cookie:1.0", vf.in());
+}
+
+void
+DAnCE_NodeManager_Module::create_poas (void)
+{
+ DANCE_TRACE("DAnCE_Node_Manager_Module::create_poas");
+ // Get reference to Root POA.
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_poas - ")
+ ACE_TEXT ("Resolving root POA\n")));
+ CORBA::Object_var obj = this->orb_->resolve_initial_references ("RootPOA");
+
+ this->root_poa_ = PortableServer::POA::_narrow (obj.in ());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_poas - ")
+ ACE_TEXT ("Obtaining the POAManager\n")));
+ PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
+
+ TAO::Utils::PolicyList_Destroyer policies (2);
+ policies.length (2);
+
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_poas - ")
+ ACE_TEXT ("DAnCE_NodeManager_Module::create_poas - ")
+ ACE_TEXT ("Creating the \"Managers\" POA.\n")));
+
+ policies[0] = this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID);
+ policies[1] = this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT);
+ this->nm_poa_ = this->root_poa_->create_POA ("Managers",
+ mgr.in(),
+ policies);
+ }
+ catch (const PortableServer::POA::AdapterAlreadyExists &)
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_poas - ")
+ ACE_TEXT ("Using existing \"Managers\" POA\n")));
+ this->nm_poa_ = this->root_poa_->find_POA ("Managers", 0);
+ }
+}
+
+void
+DAnCE_NodeManager_Module::create_nm_properties (DAnCE::PROPERTY_MAP &props)
+{
+ {
+ CORBA::Any val;
+ val <<= this->options_.timeout_;
+ props.bind (CIAO::Deployment::SERVER_TIMEOUT, val);
+ }
+ {
+ CORBA::Any val;
+ val <<= CORBA::Any::from_string (CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (this->options_.cs_path_)),0);
+ props.bind (CIAO::Deployment::SERVER_EXECUTABLE, val);
+ }
+ {
+ CORBA::Any val;
+ val <<= CORBA::Any::from_boolean (this->options_.standalone_);
+ props.bind (DAnCE::STANDALONE_NM, val);
+ }
+ {
+ CORBA::Any val;
+ val <<= CORBA::Any::from_string (CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (this->options_.server_args_)),0);
+ props.bind (CIAO::Deployment::SERVER_ARGUMENTS, val);
+ }
+ if (this->options_.instance_nc_)
+ {
+ CORBA::Any val;
+ val <<= CORBA::Any::from_string (CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (this->options_.instance_nc_)), 0);
+ props.bind (DAnCE::INSTANCE_NC, val);
+ }
+ if (this->options_.domain_nc_)
+ {
+ CORBA::Any val;
+ val <<= CORBA::Any::from_string (CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (this->options_.domain_nc_)), 0);
+ props.bind (DAnCE::DOMAIN_NC, val);
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.h b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.h
new file mode 100644
index 00000000000..8bb4e1efdce
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.h
@@ -0,0 +1,108 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Node_Manager_Module.h
+ *
+ * $Id$
+ *
+ * @brief To start NodeManager by starter
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NODE_MANAGER_MODULE_H
+#define NODE_MANAGER_MODULE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Service_Config.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Vector_T.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "DAnCE/DAnCE/Deployment_common.h"
+
+namespace DAnCE
+{
+ class NodeManager_Impl;
+}
+
+/**
+ * @class Node_Manager_Module
+ *
+ * @brief The shared object that is instantiated when the node manager
+ * module/library is dynamically loaded.
+ *
+ * This class runs the node manager instance
+ */
+class DAnCE_NodeManager_Module
+{
+ public:
+ /// Constructor.
+ DAnCE_NodeManager_Module (void);
+
+ /// Destructor.
+ ~DAnCE_NodeManager_Module (void);
+
+ /// Overload the base class method to create a new instance
+ /// of a DAnCE_NodeManager_Module object.
+ CORBA::Object_ptr init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ private:
+ const char * usage (void);
+
+ bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ struct SOptions
+ {
+ bool process_ns_;
+ const ACE_TCHAR* process_ns_file_;
+ bool create_plan_ns_;
+ const ACE_TCHAR* create_plan_ns_ior_;
+ bool rebind_plan_ns_;
+ const ACE_TCHAR* rebind_plan_ns_ior_;
+ bool port_indirection_;
+ ACE_Vector<ACE_TString> node_managers_;
+ const ACE_TCHAR * cs_path_;
+ unsigned int timeout_;
+ CORBA::Boolean standalone_;
+ const ACE_TCHAR * server_args_;
+ const ACE_TCHAR * domain_nc_;
+ const ACE_TCHAR * instance_nc_;
+
+ SOptions();
+ };
+
+ void register_value_factories (void);
+ void create_poas (void);
+ void create_nm_properties (DAnCE::PROPERTY_MAP &props);
+
+ /// Here we store the servants.
+ typedef ACE_Map_Manager < ACE_TString,
+ DAnCE::NodeManager_Impl *,
+ ACE_Null_Mutex > Servant_Map;
+ Servant_Map nm_map_;
+ CORBA::ORB_var orb_;
+ CosNaming::NamingContext_var domain_nc_;
+
+ SOptions options_;
+
+ PortableServer::POA_var root_poa_;
+ PortableServer::POA_var nm_poa_;
+};
+
+#include /**/ "ace/post.h"
+
+#endif /* NODE_MANAGER_MODULE_H */
diff --git a/modules/CIAO/DAnCE/NodeManager/README b/modules/CIAO/DAnCE/NodeManager/README
new file mode 100644
index 00000000000..dda9201e240
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/README
@@ -0,0 +1,13 @@
+/**
+
+@page NodeManager README File
+
+ CIAO's NodeManager implementation. NodeManager is the bootstraping
+mechanism to create new NodeApplication on the localhost. We
+currently depend on starting the NodeApplicationManager process on
+some port of all the hosts that have NodeApplication install to
+function properly. The port to run this daemon can be set by using the
+TAO ORB options command of -ORBEndpoint <port>. This replaces the
+earlier CIAO_Daemon implementation of CIAO as defined in the CCM
+specification.
+*/
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Deployment_Failure.h b/modules/CIAO/DAnCE/Plan_Launcher/Deployment_Failure.h
new file mode 100644
index 00000000000..bc073921794
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Deployment_Failure.h
@@ -0,0 +1,25 @@
+/**
+ * @file Deployment_Failure.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * Defines exceptions used internally to the Plan Launcher
+ */
+
+#ifndef DANCE_DEPLOYMENT_FAILURE
+#define DANCE_DEPLOYMENT_FAILURE
+
+#include "ace/SString.h"
+
+namespace DAnCE
+{
+ struct Deployment_Failure
+ {
+ Deployment_Failure (const ACE_CString &ex) : ex_ (ex) {}
+
+ ACE_CString ex_;
+ };
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.cpp b/modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.cpp
new file mode 100644
index 00000000000..7fc59e52cdd
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.cpp
@@ -0,0 +1,67 @@
+// $Id$
+
+#include "EM_Launcher.h"
+
+namespace DAnCE
+{
+ EM_Launcher::EM_Launcher (CORBA::ORB_ptr orb,
+ __Base::Manager_ptr manager)
+ : __Base (orb, manager)
+ {
+ }
+
+
+
+ EM_Launcher::~EM_Launcher (void)
+ {
+
+ }
+
+ bool
+ EM_Launcher::lookup_by_uuid (const char *uuid,
+ CORBA::Object_out am,
+ CORBA::Object_out app)
+ {
+ DANCE_TRACE ("EM_Launcher::lookup_by_uuid");
+
+ try
+ {
+ ::Deployment::DomainApplicationManagers_var managers = this->manager_->getManagers ();
+
+ for (CORBA::ULong i = 0; i < managers->length (); ++i)
+ {
+ ::Deployment::DeploymentPlan_var plan (managers[i]->getPlan ());
+ ACE_CString plan_uuid (plan->UUID.in ());
+ if (plan_uuid == uuid)
+ {
+ am = CORBA::Object::_duplicate (managers[i]);
+
+ ::Deployment::Applications_var apps = managers[i]->getApplications ();
+
+ if (apps->length () != 0)
+ {
+ app = CORBA::Object::_duplicate ((*apps)[0]);
+ return true;
+ }
+ else return false;
+ }
+ }
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("EM_Launcher::lookup_by_uuid - ")
+ ACE_TEXT ("Caught CORBA Exception: %C\n"),
+ ex._info ().c_str ()));
+ throw Deployment_Failure (ex._info ());
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("EM_Launcher::lookup_by_uuid - ")
+ ACE_TEXT ("Unknown C++ exception\n")));
+ throw Deployment_Failure ("Unknown C++ exception in lookup_by_uuid\n");
+ }
+
+ return false;
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.h b/modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.h
new file mode 100644
index 00000000000..09579c87214
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/EM_Launcher.h
@@ -0,0 +1,44 @@
+/**
+ * @file EM_Launcher.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * Plan Launcher bridge for the Execution Manager.
+ */
+
+#ifndef DANCE_PLAN_LAUNCHER_EM
+#define DANCE_PLAN_LAUNCHER_EM
+
+#include "Plan_Launcher_Base_Impl_T.h"
+
+#include "DAnCE/Deployment/Deployment_DomainApplicationC.h"
+#include "DAnCE/Deployment/Deployment_DomainApplicationManagerC.h"
+#include "DAnCE/Deployment/Deployment_ExecutionManagerC.h"
+#include "DAnCE/Plan_Launcher/Plan_Launcher_Export.h"
+
+namespace DAnCE
+{
+ class DAnCE_Plan_Launcher_Export EM_Launcher :
+ public virtual Plan_Launcher_Base_Impl< ::Deployment::ExecutionManager,
+ ::Deployment::DomainApplicationManager,
+ ::Deployment::DomainApplication >
+ {
+ typedef Plan_Launcher_Base_Impl< ::Deployment::ExecutionManager,
+ ::Deployment::DomainApplicationManager,
+ ::Deployment::DomainApplication > __Base;
+
+ public:
+ EM_Launcher (CORBA::ORB_ptr orb,
+ __Base::Manager_ptr managerw);
+
+ ~EM_Launcher (void);
+
+
+ bool lookup_by_uuid (const char *uuid,
+ CORBA::Object_out am,
+ CORBA::Object_out app);
+ };
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.cpp b/modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.cpp
new file mode 100644
index 00000000000..d95477b7c9f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.cpp
@@ -0,0 +1,19 @@
+// $Id$
+
+#include "NM_Launcher.h"
+
+namespace DAnCE
+{
+ NM_Launcher::NM_Launcher (CORBA::ORB_ptr orb,
+ __Base::Manager_ptr manager)
+ : __Base (orb, manager)
+ {
+ }
+
+
+
+ NM_Launcher::~NM_Launcher (void)
+ {
+
+ }
+}
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.h b/modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.h
new file mode 100644
index 00000000000..9767632e872
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/NM_Launcher.h
@@ -0,0 +1,41 @@
+/**
+ * @file NM_Launcher.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * Plan Launcher bridge for the Node Manager.
+ */
+
+#ifndef DANCE_PLAN_LAUNCHER_NM
+#define DANCE_PLAN_LAUNCHER_NM
+
+#include "Plan_Launcher_Base_Impl_T.h"
+
+#include "DAnCE/Deployment/Deployment_NodeApplicationC.h"
+#include "DAnCE/Deployment/Deployment_NodeApplicationManagerC.h"
+#include "DAnCE/Deployment/Deployment_NodeManagerC.h"
+#include "DAnCE/Plan_Launcher/Plan_Launcher_Export.h"
+
+namespace DAnCE
+{
+ class DAnCE_Plan_Launcher_Export NM_Launcher :
+ public virtual Plan_Launcher_Base_Impl< ::Deployment::NodeManager,
+ ::Deployment::NodeApplicationManager,
+ ::Deployment::NodeApplication >
+ {
+ typedef Plan_Launcher_Base_Impl< ::Deployment::NodeManager,
+ ::Deployment::NodeApplicationManager,
+ ::Deployment::NodeApplication > __Base;
+
+ public:
+ NM_Launcher (CORBA::ORB_ptr orb,
+ __Base::Manager_ptr managerw);
+
+ ~NM_Launcher (void);
+
+
+ };
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp
new file mode 100644
index 00000000000..fd227fdd6a9
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp
@@ -0,0 +1,639 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "ace/Env_Value_T.h"
+#include "ace/Get_Opt.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "DAnCE/tools/Convert_Plan/Convert_Plan_Impl.h"
+
+#include "EM_Launcher.h"
+#include "NM_Launcher.h"
+
+//#include "Plan_Launcher_Impl.h"
+
+namespace
+{
+ struct Options
+ {
+ enum MODE
+ {
+ LAUNCH,
+ STARTLAUNCH,
+ FINISHLAUNCH,
+ START,
+ TEARDOWN,
+ INVALID
+ };
+
+ Options (void)
+ : em_ior_ (0),
+ nm_ior_ (0),
+ xml_plan_ (0),
+ cdr_plan_ (0),
+ uuid_ (0),
+ am_ior_ (0),
+ app_ior_ (0),
+ output_ (false),
+ output_prefix_ (0),
+ mode_ (LAUNCH)
+ {}
+
+ const ACE_TCHAR *em_ior_;
+ const ACE_TCHAR *nm_ior_;
+ const ACE_TCHAR *xml_plan_;
+ const ACE_TCHAR *cdr_plan_;
+ const ACE_TCHAR *uuid_;
+ const ACE_TCHAR *am_ior_;
+ const ACE_TCHAR *app_ior_;
+ bool output_;
+ const ACE_TCHAR *output_prefix_;
+ MODE mode_;
+ };
+}
+
+
+void
+usage(const ACE_TCHAR*)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Plan Launcher Options :\n")
+ ACE_TEXT ("\t-k|--em-ior <EM IOR>\t\t")
+ ACE_TEXT ("ExecutionManager IOR for EM based deployment.\n")
+ ACE_TEXT ("\t-n|--nm-ior <NodeManager IOR>\t")
+ ACE_TEXT ("NodeManager IOR for NM based deployment.\n")
+ /*
+ ACE_TEXT ("\nName Service Options\n")
+ ACE_TEXT ("\t--domain-nc [NC]\t\t)
+ ACE_TEXT (Domain Naming Context (default will rir NameService)\n")
+ ACE_TEXT ("\t--instance-nc [NC]\t\t")
+ ACE_TEXT("Instance Naming Context (default will rir NameService)\n")
+ */
+ ACE_TEXT ("\nPlan Identification Options:\n")
+ ACE_TEXT ("\t-c|--cdr-plan <CDR Deployment Plan>\n")
+ ACE_TEXT ("\t-x|--xml-plan <XML Deployment Plan>\n")
+
+ ACE_TEXT ("\t-u|--plan-uuid <PLAN UUID>\t")
+ ACE_TEXT ("Only supported for EM-based deployments\n")
+
+ ACE_TEXT ("\t-a|--app-ior <APP IOR>\t\t")
+ ACE_TEXT ("IOR for ApplicationManager entity (Domain or Node)\n")
+
+ ACE_TEXT ("\t-m|--am-ior <AM IOR>\t\t")
+ ACE_TEXT ("IOR For Application entity (Domain or Node)\n")
+
+ ACE_TEXT ("\nPlan Control Options:\n")
+ ACE_TEXT ("The default action is to fully launch a plan. ")
+ ACE_TEXT ("The following options may be used\n")
+ ACE_TEXT ("to arrive at a different state\n")
+ ACE_TEXT ("\t-l|--launch-plan\t\t")
+ ACE_TEXT ("Launch the plan (Requires CDR/XML plan)\n")
+
+ ACE_TEXT ("\t-s|--stop-plan\t\t\tStop the plan ")
+ ACE_TEXT ("(Requires Plan, UUID, or APP/AM references")
+
+ ACE_TEXT ("\nOther Options\n")
+ ACE_TEXT ("\t-o|--output[prefix]\t\tOutput IOR files ")
+ ACE_TEXT ("that result from plan control action, ")
+ ACE_TEXT ("if any. Optional prefix to filename defaults ")
+ ACE_TEXT ("to plan UUID if plan is provided. ")
+ ACE_TEXT ("Default is on for NM-based deployments.\n")
+
+ ACE_TEXT ("\t-h|--help\t\t\tShow this usage information\n")
+ ));
+}
+
+bool
+parse_args(int argc, ACE_TCHAR *argv[], Options &options)
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("PL options : \"")));
+
+ for (int i = 0; i < argc; ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, "\t%s\n", argv[i]));
+ }
+
+ ACE_Get_Opt get_opt(argc, argv,
+ ACE_TEXT ("k:n:c:x:u:m:a:lso::h"));
+ get_opt.long_option(ACE_TEXT("em-ior"), 'k', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("nm-ior"), 'n', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("xml-plan"), 'x', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("cdr-plan"), 'c', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("plan-uuid"), 'u', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("am-ior"), 'm', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("app-ior"), 'a', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("launch-plan"), 'l', ACE_Get_Opt::NO_ARG);
+ get_opt.long_option(ACE_TEXT("stop-plan"), 's', ACE_Get_Opt::NO_ARG);
+ get_opt.long_option(ACE_TEXT("output"), 'o', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opt.long_option(ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+
+ int c;
+ ACE_CString s;
+ while ( (c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 'k':
+ if (get_opt.opt_arg () == 0)
+ {
+ options.em_ior_ = "corbaname:rir:/NameService#ExecutionManager";
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args - ")
+ ACE_TEXT ("Defaulting to NameService lookup")
+ ACE_TEXT ("of ExecutionManager\n")));
+ }
+ else
+ {
+ options.em_ior_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Using ExecutionManager IOR: %s\n"),
+ options.em_ior_));
+ }
+ break;
+
+ case 'n':
+ options.nm_ior_ = get_opt.opt_arg ();
+ options.output_ = true;
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Using NodeManager IOR: %s\n"),
+ options.nm_ior_));
+ break;
+
+ case 'x':
+ options.xml_plan_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Using XML plan: %s\n"),
+ options.xml_plan_));
+ break;
+
+ case 'c':
+ options.cdr_plan_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Using CDR plan: %s\n"),
+ options.cdr_plan_));
+ break;
+
+ case 'u':
+ options.uuid_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Using UUID: %s\n"),
+ options.uuid_));
+ break;
+
+ case 'm':
+ options.am_ior_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Using ApplicationManager IOR %s\n"),
+ options.am_ior_));
+ break;
+
+ case 'a':
+ options.app_ior_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Application IOR: %s\n"),
+ options.app_ior_));
+ break;
+
+ case 'l':
+ options.mode_ = Options::LAUNCH;
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Launching nominated plan\n")));
+ break;
+
+ case 's':
+ options.mode_ = Options::TEARDOWN;
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args -")
+ ACE_TEXT ("Tearing down nominated plan\n")));
+ break;
+
+ case 'o':
+ options.output_ = true;
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args - ")
+ ACE_TEXT ("IOR files will be output to ")
+ ACE_TEXT ("the current working directory\n")));
+
+ if (get_opt.opt_arg () != 0)
+ {
+ options.output_prefix_ = get_opt.opt_arg ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::parse_args - ")
+ ACE_TEXT ("Storing user-provided output ")
+ ACE_TEXT ("postfix <%s>\n"),
+ options.output_prefix_));
+ }
+
+ break;
+
+ case 'h':
+ usage (argv[0]);
+ return false;
+ default:
+ usage (argv[0]);
+ return false;
+ }
+ }
+
+ /// Sanity checking on the options.
+
+ // In all cases, we need to have a EM/NM IOR specified, but only one.
+ if ((!options.em_ior_ && !options.nm_ior_) ||
+ (options.em_ior_ && options.nm_ior_))
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_launcher::parse_args - ")
+ ACE_TEXT ("Error: Must specify either EM IOR or NM IOR\n")));
+ return false;
+ }
+
+ // Launching plans requires a plan (duh), and only one plan
+ if ((options.mode_ == Options::LAUNCH) &&
+ ((!options.xml_plan_ && !options.cdr_plan_) ||
+ (options.xml_plan_ && options.cdr_plan_)))
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::parse_args - ")
+ ACE_TEXT ("Error: Launching plans requires ")
+ ACE_TEXT ("exactly one type of plan (CDR/XML) be ")
+ ACE_TEXT ("specified.\n")));
+ return false;
+ }
+
+ // tearing down plans requires a bit more complex set of options:
+ if ((options.mode_ == Options::TEARDOWN)
+ // Either way (EM/NM), we ca use a combination of a AM and a APP.
+ && !(
+ (options.am_ior_ && options.app_ior_) ||
+ // If we are tearing down from EM, we have more options, namely:
+ // A plan of some kind
+ (options.em_ior_ &&
+ (
+ ((!options.xml_plan_ && !options.cdr_plan_) ||
+ (options.xml_plan_ && options.cdr_plan_)) ||
+ // A UUID
+ (!options.uuid_)
+ )
+ )
+ )
+ )
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::parse_args - ")
+ ACE_TEXT ("Invalid set of plan identification ")
+ ACE_TEXT ("as required for teardown\n")));
+ return false;
+ }
+
+
+ return true;
+}
+
+bool
+write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
+{
+ FILE* ior_output_file_ = ACE_OS::fopen (ior_file_name, ACE_TEXT("w"));
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_, "%s", ior);
+ ACE_OS::fclose (ior_output_file_);
+ return true;
+ }
+ return false;
+}
+
+int launch_plan (const Options &opts,
+ DAnCE::Plan_Launcher_Base *pl_base,
+ const ::Deployment::DeploymentPlan *plan,
+ CORBA::ORB_ptr orb)
+{
+ DANCE_TRACE ("Plan_Launcher::launch_plan");
+
+ try
+ {
+ CORBA::Object_var app_mgr, app;
+
+ ACE_CString
+ uuid (pl_base->launch_plan (*plan, app_mgr.out () , app.out ()));
+
+ DANCE_DEBUG (2, (LM_NOTICE, DLINFO
+ ACE_TEXT ("Plan_Launcher::launch_plan - ")
+ ACE_TEXT ("Successfully deployed plan ")
+ ACE_TEXT ("with UUID: <%C>\n"),
+ uuid.c_str ()));
+
+ if (!opts.output_)
+ return 0;
+
+ ACE_TString am_output, app_output;
+
+ if (opts.output_prefix_)
+ am_output = app_output = opts.output_prefix_;
+ else
+ am_output = app_output = ACE_TEXT_CHAR_TO_TCHAR (uuid.c_str ());
+
+ am_output += ACE_TEXT ("_AM.ior");
+ app_output += ACE_TEXT ("_APP.ior");
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::launch_plan - ")
+ ACE_TEXT ("Writing Application Manager IOR to <%s>\n"),
+ am_output.c_str ()));
+ write_IOR (am_output.c_str (),
+ orb->object_to_string (app_mgr.in ()));
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::launch_plan - ")
+ ACE_TEXT ("Writing Application IOR to <%s>\n"),
+ am_output.c_str ()));
+ write_IOR (app_output.c_str (),
+ orb->object_to_string (app.in ()));
+
+ }
+ catch (const DAnCE::Deployment_Failure &ex)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::launch_plan - ")
+ ACE_TEXT ("Deployment failed, exception: %C\n"),
+ ex.ex_.c_str ()));
+ return 1;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::launch_plan - ")
+ ACE_TEXT ("Deployment failed, caught CORBA exception %C\n"),
+ ex._info ().c_str ()));
+ return 1;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::launch_plan - ")
+ ACE_TEXT ("Deployment failed, ")
+ ACE_TEXT ("caught unknown C++ exception\n")));
+ return 1;
+ }
+
+ return 0;
+}
+
+int teardown_plan (const Options &opts,
+ DAnCE::Plan_Launcher_Base *pl_base,
+ const ::Deployment::DeploymentPlan *plan,
+ CORBA::ORB_ptr orb)
+{
+ DANCE_TRACE ("Plan_Launcher::teardown_plan");
+
+ try
+ {
+ if (opts.am_ior_ && opts.app_ior_)
+ {
+ DANCE_DEBUG (3, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Tearing down plan with explicitly ")
+ ACE_TEXT ("nominated App and AM IORs.\n")));
+ CORBA::Object_var am (orb->string_to_object (opts.am_ior_));
+ CORBA::Object_var app (orb->string_to_object (opts.app_ior_));
+
+ pl_base->teardown_application (am, app);
+ }
+ else
+ {
+ // Need to perform lookup by uuid,
+ // either explicitly provided or in plan.
+ ACE_CString uuid;
+ if (plan)
+ uuid = plan->UUID.in ();
+ else
+ uuid = opts.uuid_;
+
+ DAnCE::EM_Launcher *em_launcher =
+ dynamic_cast <DAnCE::EM_Launcher *> (pl_base);
+
+ if (!em_launcher)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Error: Attempting UUID lookup on non")
+ ACE_TEXT ("-EM managed plan not supported\n")));
+ return 1;
+ }
+
+ CORBA::Object_var am, app;
+ if (em_launcher->lookup_by_uuid (uuid.c_str (),
+ am.out (),
+ app.out ()))
+ {
+ DANCE_DEBUG (3, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Tearing down plan with UUID %C\n"),
+ uuid.c_str ()));
+ pl_base->teardown_application (am, app);
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Error: Lookup by UUID failed\n")));
+ return 1;
+ }
+ }
+ }
+ catch (const DAnCE::Deployment_Failure &ex)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Teardown failed, exception: %C\n"),
+ ex.ex_.c_str ()));
+ return 1;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Teardown failed, caught CORBA exception %C\n"),
+ ex._info ().c_str ()));
+ return 1;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher::teardown_plan - ")
+ ACE_TEXT ("Teardown failed, ")
+ ACE_TEXT ("caught unknown C++ exception\n")));
+ return 1;
+ }
+
+ return 0;
+}
+
+struct ORB_Destroyer
+{
+ ORB_Destroyer (CORBA::ORB_var &orb) :
+ orb_ (orb)
+ {
+ }
+
+ ~ORB_Destroyer (void)
+ {
+ orb_->destroy ();
+ }
+ CORBA::ORB_var &orb_;
+};
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service * dlf =
+ ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("PlanLauncher - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ ORB_Destroyer safe_orb (orb);
+
+ Options options;
+ if (!parse_args (argc, argv, options))
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher - ")
+ ACE_TEXT ("Failed to parse ")
+ ACE_TEXT ("command line arguments, exiting.\n")));
+ return 1;
+ }
+
+
+ auto_ptr<DAnCE::Plan_Launcher_Base> pl_base (0);
+
+ if (options.em_ior_)
+ {
+ // Resolve ExecutionManager IOR for EM base deployment.
+ DAnCE::EM_Launcher *em_pl (0);
+
+ CORBA::Object_var obj = orb->string_to_object (options.em_ior_);
+ Deployment::ExecutionManager_var tmp_em =
+ Deployment::ExecutionManager::_narrow (obj);
+
+ if (CORBA::is_nil (tmp_em.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher - ")
+ ACE_TEXT ("Unable to resolve ")
+ ACE_TEXT ("ExecutionManager reference <%s>\n"),
+ options.em_ior_));
+ return 1;
+ }
+
+ ACE_NEW_THROW_EX (em_pl,
+ DAnCE::EM_Launcher (orb.in (),
+ tmp_em.in ()),
+ CORBA::NO_MEMORY ());
+
+ pl_base.reset (em_pl);
+ }
+ else
+ {
+ // Resolve NM IOR for NM based deployment.
+ DAnCE::NM_Launcher *nm_pl (0);
+
+ CORBA::Object_var obj = orb->string_to_object (options.nm_ior_);
+ Deployment::NodeManager_var tmp_em =
+ Deployment::NodeManager::_narrow (obj);
+
+ if (CORBA::is_nil (tmp_em.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher - ")
+ ACE_TEXT ("Unable to resolve ")
+ ACE_TEXT ("NodeManager reference <%s>\n"),
+ options.em_ior_));
+ return 1;
+ }
+
+ ACE_NEW_THROW_EX (nm_pl,
+ DAnCE::NM_Launcher (orb.in (),
+ tmp_em.in ()),
+ CORBA::NO_MEMORY ());
+
+ pl_base.reset (nm_pl);
+ }
+
+ Deployment::DeploymentPlan_var dp;
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT ("Plan_Launcher - ")
+ ACE_TEXT ("Parsing deployment plan\n")));
+ if (options.cdr_plan_)
+ {
+ dp = DAnCE::Convert_Plan::read_cdr_plan (options.cdr_plan_);
+ if (!dp.ptr ())
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT ("PlanLauncher - ")
+ ACE_TEXT ("Error: Unable to read in CDR plan\n")));
+ return 1;
+ }
+ }
+ else if (options.xml_plan_)
+ {
+ dp = DAnCE::Convert_Plan::read_xml_plan (options.xml_plan_);
+
+ if (!dp.ptr ())
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT ("PlanLauncher - Error: ")
+ ACE_TEXT ("Unable to read in XML plan\n")));
+ return 1;
+ }
+ }
+
+ switch (options.mode_)
+ {
+ case Options::LAUNCH:
+ retval = launch_plan (options, pl_base.get (), dp, orb.in ());
+
+ break;
+
+ case Options::TEARDOWN:
+ retval = teardown_plan (options, pl_base.get (), dp, orb.in ());
+ break;
+
+ default:
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher -")
+ ACE_TEXT ("Mode not yet supported\n")));
+ break;
+
+ };
+ }
+ catch (const DAnCE::Deployment_Failure& e)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("PlanLauncher - ")
+ ACE_TEXT ("Error: %C.\n"), e.ex_.c_str()));
+ retval = 1;
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ( "PlanLauncher - ")
+ ACE_TEXT ("Error: %C\n"), ex._info ().c_str ()));
+ retval = 1;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("PlanLauncher - ")
+ ACE_TEXT ("Error: Unknown exception.\n")));
+ retval = 1;
+ }
+
+ return retval;
+}
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.mpc b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.mpc
new file mode 100644
index 00000000000..a71f9629b57
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.mpc
@@ -0,0 +1,29 @@
+// -*- MPC -*-
+// $Id$
+
+project(DAnCE_Plan_Launcher_Impl) : dance_lib, dance_logger, dance_convert_plan, \
+ dance_executionmanager_stub, \
+ dance_domainapplication_stub, \
+ dance_domainapplicationmanager_stub, \
+ dance_nodeapplication_stub, \
+ dance_nodeapplicationmanager_stub, \
+ dance_nodemanager_stub {
+
+ dynamicflags = DANCE_PLAN_LAUNCHER_BUILD_DLL
+
+ Source_Files {
+ EM_Launcher.cpp
+ NM_Launcher.cpp
+ }
+
+ Template_Files {
+ Plan_Launcher_Base_Impl_T.cpp
+ }
+}
+
+project(Plan_Launcher_Exec) : dance_exe, dance_plan_launcher {
+ exename = dance_plan_launcher
+ Source_Files {
+ Plan_Launcher.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base.h
new file mode 100644
index 00000000000..af5059e3b6a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base.h
@@ -0,0 +1,61 @@
+/**
+ * @file Plan_Launcher_Base.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * ABC for the EM/NM bridges.
+ */
+
+#ifndef DANCE_PLAN_LAUNCHER_BASE
+#define DANCE_PLAN_LAUNCHER_BASE
+
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "Deployment/Deployment_ConnectionC.h"
+#include "DAnCE/Plan_Launcher/Plan_Launcher_Export.h"
+
+namespace DAnCE
+{
+ class DAnCE_Plan_Launcher_Export Plan_Launcher_Base
+ {
+ public:
+ virtual ~Plan_Launcher_Base (void) {};
+
+ /// Fully launches a nominated plan, returning valid object references to
+ /// the ApplicationManager and Application objects if successful.
+ virtual const char * launch_plan (const ::Deployment::DeploymentPlan &plan,
+ CORBA::Object_out am,
+ CORBA::Object_out app) = 0;
+
+ /// Invokes prepareplan for the provided plan, returning a reference to
+ /// the ApplicationManager.
+ virtual CORBA::Object_ptr prepare_plan (const ::Deployment::DeploymentPlan &plan) = 0;
+
+ /// Invokes startLaunch on the provided ApplicationManager reference.
+ virtual CORBA::Object_ptr start_launch (CORBA::Object_ptr app_mgr,
+ const ::Deployment::Properties &properties,
+ ::Deployment::Connections_out connections) = 0;
+
+ /// Invokes finishLaunch on the provided Application reference.
+ virtual void finish_launch (CORBA::Object_ptr application,
+ const ::Deployment::Connections &provided_connections,
+ bool start) = 0;
+
+ /// Invokes start on the provided application reference.
+ virtual void start (CORBA::Object_ptr application) = 0;
+
+ /// Tears down a plan given an applicationmanafger and Application
+ /// reference pair.
+ virtual void teardown_application (CORBA::Object_ptr app_mgr,
+ CORBA::Object_ptr app) = 0;
+
+ /// Instructs the Manager to destroy the ApplicationManager.
+ virtual void destroy_app_manager (CORBA::Object_ptr app_mgr) = 0;
+
+ /// Helper method to resolve externalReference endpoints into valid object references.
+ virtual void create_external_connections(const ::Deployment::DeploymentPlan &plan,
+ Deployment::Connections &conn) = 0;
+ };
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp
new file mode 100644
index 00000000000..2bd3fcad161
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp
@@ -0,0 +1,634 @@
+// $Id$
+
+#ifndef PLAN_LAUNCHER_BASE_IMPL_CPP
+#define PLAN_LAUNCHER_BASE_IMPL_CPP
+
+#include "Plan_Launcher_Base_Impl_T.h"
+
+#include "ace/Env_Value_T.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Get_Opt.h"
+
+#include "Deployment/Deployment_PlanErrorC.h"
+#include "Deployment/Deployment_ApplicationC.h"
+#include "Deployment/Deployment_ApplicationManagerC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+#include "Deployment_Failure.h"
+
+#ifdef GEN_OSTREAM_OPS
+#include <iostream>
+#include <sstream>
+#endif /* GEN_OSTREAM_OPS */
+
+namespace DAnCE
+{
+ template <typename Manager, typename AppManager, typename Application>
+ Plan_Launcher_Base_Impl <Manager, AppManager, Application> ::
+ Plan_Launcher_Base_Impl(CORBA::ORB_ptr orb,
+ Manager_ptr manager)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ manager_ (Manager::_duplicate (manager))
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl");
+ if (CORBA::is_nil (this->orb_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
+ "Plan Launcher requires a valid ORB\n"));
+ throw Deployment_Failure ("Plan launcher requires a valid ORB\n");
+ }
+
+ if (CORBA::is_nil (this->manager_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
+ "Plan Launcher requires a valid Manager reference.\n"));
+ throw Deployment_Failure ("Plan launcher requires a valid Manager reference\n");
+ }
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ Plan_Launcher_Base_Impl < Manager, AppManager, Application> ::~Plan_Launcher_Base_Impl()
+ {
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ CORBA::Object_ptr
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::prepare_plan (const ::Deployment::DeploymentPlan &plan)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::prepare_plan");
+
+
+#ifdef GEN_OSTREAM_OPS
+ {
+ std::ostringstream plan_stream;
+ plan_stream << plan << std::endl;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Convert_Plan - Input plan: %C\n",
+ plan_stream.str ().c_str ()));
+ }
+#endif /* GEN_OSTREAM_OPS */
+
+ AppManager_var app_manager;
+ try
+ {
+ app_manager = this->manager_->preparePlan (plan, 0);
+ }
+ catch (::Deployment::PlanError &ex)
+ {
+ ACE_CString error ("Caught PlanError exception while invoking preparePlan: ");
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::prepare_plan - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::Deployment::StartError &ex)
+ {
+ ACE_CString error ("Caught StartError exception while invoking preparePlan: ");
+ error += ex.name.in ();
+ error += ", " ;
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::prepare_plan - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::CORBA::Exception &ex)
+ {
+ ACE_CString error;
+ error += "Caught CORBA exception while invoking preparePlan: ";
+ error += ex._info ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::prepare_plan - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch(...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::prepare_plan - ")
+ ACE_TEXT("An exception was thrown during EM->preparePlan.\n")));
+ throw Deployment_Failure ("An unexpected C++ exception was caught while invoking preparePlan");
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT ("after to call preparePlan\n")));
+
+ if (CORBA::is_nil (app_manager.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::prepare_plan - ")
+ ACE_TEXT("preparePlan call failed: ")
+ ACE_TEXT("nil ApplicationManager reference\n")));
+ return 0;
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::prepare_plan - ")
+ ACE_TEXT("ApplicationMAnager was received from preparePlan.\n")));
+ }
+
+ return app_manager._retn ();
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ CORBA::Object_ptr
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::start_launch (CORBA::Object_ptr app_mgr,
+ const ::Deployment::Properties &properties,
+ ::Deployment::Connections_out connections)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::start_launch");
+
+ AppManager_var app_manager (AppManager::_narrow (app_mgr));
+
+ if (CORBA::is_nil (app_manager.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher_Base_Impl::start_launch - ")
+ ACE_TEXT ("Nil ApplicationManager reference\n")));
+ return 0;
+ }
+
+ Deployment::Application_var da;
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - ")
+ ACE_TEXT("before startLaunch...\n")));
+ da = app_manager->startLaunch (properties, connections);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - ")
+ ACE_TEXT("startLaunch completed...\n")));
+ }
+ catch (::Deployment::StartError &ex)
+ {
+ ACE_CString error;
+ error += "Caught StartError exception while invoking startLaunch: " ;
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::Deployment::InvalidProperty &ex)
+ {
+ ACE_CString error;
+ error += "Caught InvalidProperty exception while invoking startLaunch: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::Deployment::InvalidNodeExecParameter &ex)
+ {
+ ACE_CString error;
+ error += "Caught InvalidNodeExecParameter exception while invoking startLaunch: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::Deployment::InvalidComponentExecParameter &ex)
+ {
+ ACE_CString error;
+ error += "Caught InvalidComponentExecParameter exception while invoking startLaunch: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::Deployment::ResourceNotAvailable &ex)
+ {
+ ACE_CString error;
+ error += "Caught ResourceNotAvailable while invoking startLaunch: ";
+ error += ex.name.in ();
+ error += ", Type: <";
+ error += ex.resourceType.in ();
+ error += "> Property Name: <";
+ error += ex.propertyName.in ();
+ error += "> Element: <";
+ error += ex.elementName.in ();
+ error += "> Resource Name: <";
+ error += ex.resourceName.in ();
+ error += ">";
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::CORBA::Exception &ex)
+ {
+ ACE_CString error;
+ error += "Caught CORBA exception while invoking startLaunch: ";
+ error += ex._info ().c_str ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch(...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - ")
+ ACE_TEXT("An exception was thrown during DAM->startLaunch.\n")));
+ throw Deployment_Failure ("Unexpected C++ exception in startLaunch\n");
+ }
+
+ if (CORBA::is_nil (da.in()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - ")
+ ACE_TEXT("CIAO_PlanLauncher:startLaunch call failed: ")
+ ACE_TEXT("nil DomainApplication reference\n")));
+ return 0;
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start_launch - ")
+ ACE_TEXT("DomainApplication was received from startLaunch\n")));
+ }
+
+ return da._retn ();
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ void
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::finish_launch (CORBA::Object_ptr app,
+ const ::Deployment::Connections &provided_connections,
+ bool start)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::finish_launch");
+
+ Application_var application (Application::_narrow (app));
+
+ if (CORBA::is_nil (application.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("Nil Application reference.\n")));
+ throw Deployment_Failure ("Nil Application reference");
+ }
+
+ // Call finish Launch to complete the connections
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before finishLaunch\n")));
+ application->finishLaunch (provided_connections,
+ start);
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("finishLaunch completed.\n")));
+ }
+ catch (::Deployment::InvalidConnection &ex)
+ {
+ ACE_CString error;
+ error += "Caught InvalidConnection exception while invoking finishLaunch: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::finish_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::Deployment::StartError &ex)
+ {
+ ACE_CString error;
+ error += "Caught StartError exception while invoking finishLaunch: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::finish_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (::CORBA::Exception &ex)
+ {
+ ACE_CString error;
+ error += "Caught CORB exception while invoking finishLaunch: ";
+ error += ex._info ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::finish_launch - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch(...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::finish_launch - ")
+ ACE_TEXT("An exception was thrown during DA->finishLaunch.\n")));
+ throw Deployment_Failure ("Unexpected C++ exception in finishLaunch");
+ }
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ void
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::start (CORBA::Object_ptr app)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::start");
+
+ Application_var application (Application::_narrow (app));
+
+ if (CORBA::is_nil (application.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start - ")
+ ACE_TEXT("Nil Application reference.\n")));
+ throw Deployment_Failure ("Nil Application reference");
+ }
+
+ try
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start - ")
+ ACE_TEXT("before invoking start on application...\n")));
+ application->start ();
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start - ")
+ ACE_TEXT("after invoking start on application...\n")));
+ }
+ catch (const ::Deployment::StartError &ex)
+ {
+ ACE_CString error;
+ error += "Caught StartError exception while invoking start: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (const ::CORBA::Exception &ex)
+ {
+ ACE_CString error;
+ error += "Caught CORBA exception while invoking start: ";
+ error += ex._info ().c_str ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::start - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch(...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::start - ")
+ ACE_TEXT("An exception was thrown during DA->start.\n")));
+ throw Deployment_Failure ("Unexpected C++ exception in start\n");
+ }
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ const char *
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::launch_plan (const ::Deployment::DeploymentPlan &plan,
+ CORBA::Object_out am_out,
+ CORBA::Object_out app_out)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::launch_plan");
+
+ //this->create_external_connections (plan, conns.inout());
+
+ try
+ {
+ CORBA::Object_var app_mgr = this->prepare_plan (plan);
+
+ ::Deployment::Connections_var conns;
+
+ CORBA::Object_var app = this->start_launch (app_mgr.in (),
+ 0,
+ conns.out ());
+
+ this->create_external_connections (plan,
+ conns.inout ());
+
+ this->finish_launch (app.in (),
+ conns,
+ false);
+
+ this->start (app.in ());
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT ("Application Deployed successfully\n")));
+
+ am_out = app_mgr._retn ();
+ app_out = app._retn ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - CORBA EXCEPTION: <%s>\n",
+ ex._info().fast_rep());
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+ catch (const Deployment_Failure &)
+ {
+ throw;
+ }
+ catch (...)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: non-CORBA exception\n");
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+
+ return CORBA::string_dup (plan.UUID.in());
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ void
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::teardown_application (CORBA::Object_ptr am_obj,
+ CORBA::Object_ptr app_obj)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::teardown_application");
+
+ AppManager_var am (AppManager::_narrow (am_obj));
+
+ if (CORBA::is_nil (am.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_application - ")
+ ACE_TEXT("Nil ApplicationManager reference.\n")));
+ throw Deployment_Failure ("Nil ApplicationManager reference in teardown_application");
+ }
+
+ Application_var app (Application::_narrow (app_obj));
+
+ if (CORBA::is_nil (app.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_appliocation - ")
+ ACE_TEXT("Nil Application reference.\n")));
+ throw Deployment_Failure ("Nil Application reference in teardown_application");
+ }
+
+ try
+ {
+ am->destroyApplication (app.in ());
+ }
+ catch (const ::Deployment::StopError &ex)
+ {
+ ACE_CString error;
+ error += "Caught StopError exception while invoking destroyApplication: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::teardown_application - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_CString error;
+ error += "Caught CORBA exception while invoking destroyApplication: ";
+ error += ex._info ().c_str ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::teardown_application - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_appliocation - ")
+ ACE_TEXT ("Caught unknown C++ exception\n")));
+ throw Deployment_Failure ("Unknown C++ exception\n");
+ }
+ }
+
+ template <typename Manager, typename AppManager, typename Application>
+ void
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::destroy_app_manager(CORBA::Object_ptr am_obj)
+ {
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::destroy_app_manager");
+
+ AppManager_var am (AppManager::_narrow (am_obj));
+
+ if (CORBA::is_nil (am.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::destroy_app_manager - ")
+ ACE_TEXT("Nil ApplicationManager reference.\n")));
+ throw Deployment_Failure ("Nil ApplicationManager reference in destroy_app_manager");
+ }
+
+ try
+ {
+ DANCE_ERROR (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::destroy_app_manager - ")
+ ACE_TEXT ("Destroying ApplicationManager\n")));
+ this->manager_->destroyManager (am.in ());
+ DANCE_ERROR (6, (LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::destroy_app_manager - ")
+ ACE_TEXT ("ApplicationManager destroyed.\n")));
+ }
+ catch (const ::Deployment::StopError &ex)
+ {
+ ACE_CString error;
+ error += "Caught StopError exception while invoking destroyManager: ";
+ error += ex.name.in ();
+ error += ", ";
+ error += ex.reason.in ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::destory_app_manager - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_CString error;
+ error += "Caught CORBA exception while invoking destroyManager: ";
+ error += ex._info ().c_str ();
+
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::destroy_app_manager - %C\n"),
+ error.c_str ()));
+ throw Deployment_Failure (error);
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::destroy_app_manager - ")
+ ACE_TEXT ("Caught unknown C++ exception\n")));
+ throw Deployment_Failure ("Unknown C++ exception\n");
+ }
+ }
+
+
+ template <typename Manager, typename AppManager, typename Application>
+ void
+ Plan_Launcher_Base_Impl< Manager, AppManager, Application>
+ ::create_external_connections(const ::Deployment::DeploymentPlan &plan,
+ Deployment::Connections &conn)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("create_external_connections - start\n")));
+
+ for (CORBA::ULong i = 0; i < plan.connection.length(); i++)
+ {
+ if (plan.connection[i].externalReference.length() > 0
+ && plan.connection[i].externalReference[0].provider)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG,
+ "Plan_Launcher_i::create_external_connections - create connection %C from IOR %C\n",
+ plan.connection[i].name.in(),
+ plan.connection[i].externalReference[0].location.in()));
+
+ try
+ {
+ CORBA::Object_ptr
+ obj = this->orb_->string_to_object(plan.connection[i].externalReference[0].location.in());
+ if (!CORBA::is_nil (obj))
+ {
+ CORBA::ULong const indx = conn.length();
+ conn.length(indx + 1);
+ conn[indx].name= CORBA::string_dup (plan.connection[i].name.in());
+ conn[indx].endpoint.length(1L);
+ conn[indx].endpoint[0] = obj;
+ }
+ else
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("Plan_Launcher_i::create_external_connections - can't create object for IOR %C\n"),
+ plan.connection[i].externalReference[0].location.in()));
+ }
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_i::create_external_connections - ")
+ ACE_TEXT("Caught CORBA Exception while resolving endpoint for connection %C: %C\n"),
+ plan.connection[i].name.in (),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_i::create_external_connections - ")
+ ACE_TEXT("Caught C++ Exception while resolving endpoint for connection\n")));
+ }
+ }
+ }
+ }
+}
+#endif
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.h
new file mode 100644
index 00000000000..2cf14cf1515
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_T.h
@@ -0,0 +1,91 @@
+/**
+ * $Id$
+ * @file Plan_Launcher_Base_Impl_T.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Contains the generic implementation of plan launcher logic for both EM and NM deployments.
+ *
+ */
+
+#ifndef PLAN_LAUNCHER_BASE_IMPL_H
+#define PLAN_LAUNCHER_BASE_IMPL_H
+
+#include "DAnCE/Deployment/Deployment_ConnectionC.h"
+#include "DAnCE/Deployment/Deployment_DeploymentPlanC.h"
+
+#include "Plan_Launcher_Base.h"
+
+namespace DAnCE
+{
+ /**
+ * @class Plan_Launcher_Base_Impl
+ * @brief This class launches and manages deployment plans.
+ */
+ template<typename Manager, typename AppManager, typename Application>
+ class Plan_Launcher_Base_Impl : public virtual Plan_Launcher_Base
+ {
+ protected:
+
+ typedef typename Manager::_ptr_type Manager_ptr;
+ typedef typename Manager::_var_type Manager_var;
+
+ typedef typename AppManager::_ptr_type AppManager_ptr;
+ typedef typename AppManager::_var_type AppManager_var;
+
+ typedef typename Application::_ptr_type Application_ptr;
+ typedef typename Application::_var_type Application_var;
+
+ public:
+ Plan_Launcher_Base_Impl (CORBA::ORB_ptr orb,
+ Manager_ptr manager);
+
+ virtual ~Plan_Launcher_Base_Impl ();
+
+ /**
+ * @brief Launch a plan, given an IDL deployment plan
+ * @param plan A valid IDL deployment plan
+ * @returns a string containing the UUID of the plan. Null indicates failure.
+ */
+ virtual const char * launch_plan (const ::Deployment::DeploymentPlan &plan,
+ CORBA::Object_out am,
+ CORBA::Object_out app);
+
+ virtual CORBA::Object_ptr prepare_plan (const ::Deployment::DeploymentPlan &plan);
+
+ virtual CORBA::Object_ptr start_launch (CORBA::Object_ptr app_mgr,
+ const ::Deployment::Properties &properties,
+ ::Deployment::Connections_out connections);
+
+ virtual void finish_launch (CORBA::Object_ptr app,
+ const ::Deployment::Connections &provided_connections,
+ bool start);
+
+ virtual void start (CORBA::Object_ptr application);
+
+ /// Tears down a plan given the UUID
+ virtual void teardown_application (CORBA::Object_ptr app_mgr,
+ CORBA::Object_ptr app);
+
+ virtual void destroy_app_manager (CORBA::Object_ptr);
+
+ virtual void create_external_connections(const ::Deployment::DeploymentPlan &plan,
+ Deployment::Connections &conn);
+
+ protected:
+ /// Cached ORB pointer
+ CORBA::ORB_var orb_;
+
+ /// Object reference of the Manager
+ Manager_var manager_;
+ }; // class Plan_Launcher_Impl
+
+}
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Plan_Launcher/Plan_Launcher_Base_Impl_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Plan_Launcher_Base_Impl_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* PLAN_LAUNCHER_BASE_IMPL_H */
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Export.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Export.h
new file mode 100644
index 00000000000..cd7e61e27c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_Plan_Launcher
+// ------------------------------
+#ifndef DANCE_PLAN_LAUNCHER_EXPORT_H
+#define DANCE_PLAN_LAUNCHER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_PLAN_LAUNCHER_HAS_DLL)
+# define DANCE_PLAN_LAUNCHER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_PLAN_LAUNCHER_HAS_DLL */
+
+#if !defined (DANCE_PLAN_LAUNCHER_HAS_DLL)
+# define DANCE_PLAN_LAUNCHER_HAS_DLL 1
+#endif /* ! DANCE_PLAN_LAUNCHER_HAS_DLL */
+
+#if defined (DANCE_PLAN_LAUNCHER_HAS_DLL) && (DANCE_PLAN_LAUNCHER_HAS_DLL == 1)
+# if defined (DANCE_PLAN_LAUNCHER_BUILD_DLL)
+# define DAnCE_Plan_Launcher_Export ACE_Proper_Export_Flag
+# define DANCE_PLAN_LAUNCHER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_PLAN_LAUNCHER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_PLAN_LAUNCHER_BUILD_DLL */
+# define DAnCE_Plan_Launcher_Export ACE_Proper_Import_Flag
+# define DANCE_PLAN_LAUNCHER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_PLAN_LAUNCHER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_PLAN_LAUNCHER_BUILD_DLL */
+#else /* DANCE_PLAN_LAUNCHER_HAS_DLL == 1 */
+# define DAnCE_Plan_Launcher_Export
+# define DANCE_PLAN_LAUNCHER_SINGLETON_DECLARATION(T)
+# define DANCE_PLAN_LAUNCHER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_PLAN_LAUNCHER_HAS_DLL == 1 */
+
+// Set DANCE_PLAN_LAUNCHER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_PLAN_LAUNCHER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_PLAN_LAUNCHER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_PLAN_LAUNCHER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_PLAN_LAUNCHER_NTRACE */
+
+#if (DANCE_PLAN_LAUNCHER_NTRACE == 1)
+# define DANCE_PLAN_LAUNCHER_TRACE(X)
+#else /* (DANCE_PLAN_LAUNCHER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_PLAN_LAUNCHER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_PLAN_LAUNCHER_NTRACE == 1) */
+
+#endif /* DANCE_PLAN_LAUNCHER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp
new file mode 100644
index 00000000000..18cf23e96c8
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp
@@ -0,0 +1,247 @@
+// $Id$
+
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "PC_Updater.h"
+#include "PC_Updater_T.h"
+#include "ace/Containers_T.h" //for ACE_Double_Linked_List
+
+namespace
+{
+ const size_t TEMP_LEN = 1024;
+}
+
+using namespace PC_Updater_T;
+
+
+ //PATH of glory/gory to update the locations of the IADs
+ //
+ //PackageConfiguration something;
+ //ComponentPackageDescriptions basePackage;
+ //PackagedComponentImplementations implementation;
+ //ComponentImplementationDescription referencedImplementation;
+ //
+ //MONOLITHIC Component:
+ //MonolithicImplementationDescriptions monolithicImpl;
+ //NamedImplementationArtifacts primaryArtifact;
+ //ImplementationArtifactDescription referencedArtifact;
+ //::CORBA::StringSeq location;
+ //
+ //ASSEMBLY-BASED Component
+ //ComponentAssemblyDescriptions assemblyImpl;
+ //SubcomponentInstantiationDescriptions instance;
+ //ComponentPackageDescriptions package;
+ //...
+
+
+/*
+ * PC_Updater Constructors
+ */
+PC_Updater::PC_Updater (const char* server_path, const char* package)
+: server_path_ (server_path),
+ file_list_ (),
+ package_ (package),
+ success_ (true)
+{
+}
+
+
+PC_Updater::PC_Updater (ACE_CString& server_path, ACE_CString& package)
+: server_path_ (server_path),
+ file_list_ (),
+ package_ (package),
+ success_ (true)
+{
+}
+
+/*
+ * PC_Updater - Destructor
+ */
+PC_Updater::~PC_Updater ()
+{
+ this->clear_list ();
+}
+
+
+void PC_Updater::clear_list ()
+{
+ while (!this->file_list_.is_empty ())
+ {
+ ZIP_File_Info* inf = this->file_list_.delete_head ();
+
+ //deallocate the head of the filename list
+ delete inf;
+ }
+}
+
+
+/*
+ * PC_Updater - Object update methods
+ */
+
+
+/// PackageConfiguration
+bool PC_Updater::update (::Deployment::PackageConfiguration &pc)
+{
+ //get the list of files in the package and figure out the names of all necessary files
+ if (!ZIP_Wrapper::file_list_info (const_cast <char*> (this->package_.c_str ()), this->file_list_))
+ return false;
+
+ update_sequence (pc.basePackage, this);
+
+ return this->success_;
+}
+
+
+/// ComponentInterfaceDescription
+void PC_Updater::update (::Deployment::ComponentInterfaceDescription &)
+{
+}
+
+/// Requirement
+void PC_Updater::update (::Deployment::Requirement &)
+{
+}
+
+
+/// ComponentExternalPortEndpoint
+void PC_Updater::update (::Deployment::ComponentExternalPortEndpoint &)
+{
+}
+
+/// ImplementationDependency
+void PC_Updater::update (Deployment::ImplementationDependency &)
+{
+}
+
+// ComponentPackageReference
+
+void PC_Updater::update (::Deployment::ComponentPackageReference &)
+{
+}
+
+// SubcomponentInstantiationDescription
+
+void PC_Updater::update (::Deployment::SubcomponentInstantiationDescription &sid)
+{
+ update_sequence (sid.basePackage, this);
+}
+
+// SubcomponentPortEndpoint
+
+void PC_Updater::update (::Deployment::SubcomponentPortEndpoint& )
+{
+}
+
+// AssemblyConnectionDescription
+
+void PC_Updater::update (::Deployment::AssemblyConnectionDescription &)
+{
+}
+
+
+// AssemblyPropertyMapping
+
+void
+PC_Updater::update (::Deployment::AssemblyPropertyMapping &)
+{
+}
+
+// ComponentAssemblyDescription
+
+void PC_Updater::update (::Deployment::ComponentAssemblyDescription& cad)
+{
+ update_sequence (cad.instance, this);
+}
+
+// ImplementationArtifactDescription
+
+void PC_Updater::update (::Deployment::ImplementationArtifactDescription &iad)
+{
+ const char* location = CORBA::string_dup (iad.location[0]);
+
+ //create an iterator
+ ACE_Double_Linked_List_Iterator<ZIP_File_Info> iter (this->file_list_);
+
+ //find the correct path and return
+ while (!iter.done ())
+ {
+ const char* full_path = iter.next ()->name_.c_str ();
+ //weird. Need to call next to get current ?!?!
+
+ //is it an implementation artifact?
+ const char* name = ACE_OS::strstr (full_path, "implementations/");
+ if (name)
+ {
+ //now check if the name matches
+ name = ACE_OS::strstr (full_path, iad.location[0]);
+
+ if (name)
+ {
+ ACE_CString loc (this->server_path_);
+ loc += "/implementations/";
+ loc += location;
+
+ iad.location[0] = CORBA::string_dup (loc.c_str ());
+
+ //cout << "Location after update: " << iad.location[0] << endl << endl;
+ return;
+ }
+ }
+ iter++;
+ }
+
+ DANCE_ERROR (1, (LM_ERROR,
+ "[PC_Updater::update] Unable to update: %s!\n",
+ location));
+
+ this->success_ = false;
+}
+
+// NamedImplementationArtifact
+
+void PC_Updater::update (::Deployment::NamedImplementationArtifact &nia)
+{
+ update (nia.referencedArtifact);
+}
+
+// ImplementationRequirement
+void PC_Updater::update (::Deployment::ImplementationRequirement &)
+{
+}
+
+// MonolithicImplementationDescription
+void PC_Updater::update (::Deployment::MonolithicImplementationDescription &mid)
+{
+ update_sequence (mid.primaryArtifact, this);
+}
+
+// Capability
+void PC_Updater::update (::Deployment::Capability &)
+{
+}
+
+// ComponentImplementationDescription
+void PC_Updater::update (::Deployment::ComponentImplementationDescription &cid)
+{
+ update_sequence (cid.assemblyImpl, this);
+ update_sequence (cid.monolithicImpl, this);
+}
+
+// PackagedComponentImplementation
+void PC_Updater::update (::Deployment::PackagedComponentImplementation &pci)
+{
+ PC_Updater::update (pci.referencedImplementation);
+}
+
+// ComponentPackageDescription
+void PC_Updater::update (::Deployment::ComponentPackageDescription &comppkgdesc)
+{
+ update_sequence (comppkgdesc.implementation, this);
+}
+
+
+// Property
+void PC_Updater::update (Deployment::Property& )
+{
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.h b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.h
new file mode 100644
index 00000000000..87cd4b2249e
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.h
@@ -0,0 +1,112 @@
+
+/* -*- C++ -*- */
+
+//========================================================================
+/**
+ * file PC_Updater.h
+ *
+ * $Id$
+ *
+ * This class is used to update the location field of the implementation
+ * artifacts in the PackageConfiguration, so that they point to the
+ * physical libraries on the collocated HTTP server
+ *
+ * author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ */
+//========================================================================
+
+#ifndef PC_UPDATER_H
+#define PC_UPDATER_H
+#include /**/ "ace/pre.h"
+
+#include "DAnCE/Deployment/DeploymentC.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "ace/SString.h" //for the ACE_CString
+
+#include "ZIP_Wrapper.h" //Wrapper around zzip
+#include "ace/Containers_T.h" //for ACE_Double_Linked_List
+#include "ace/Malloc_Allocator.h" //for ACE_New_Allocator needed by the doubly link list
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+/**
+ * @class PC_Updater
+ *
+ * This class defines a set of overloaded methods used to update
+ * the contents of a PackageConfiguration. More specifically the class
+ * goes through the PackageConfiguration and updates the locations of the
+ * artifacts, wrt to their location on the HTTP server.
+ */
+class PC_Updater
+{
+public:
+
+ /// Constructors
+ PC_Updater (const char* server_path, const char* package);
+ PC_Updater (ACE_CString& server_path, ACE_CString& package);
+
+ ~PC_Updater ();
+
+ /// A whole slew of overloaded routines for different IDL
+ /// data types part of the PackageConfiguration.
+
+ bool update (::Deployment::PackageConfiguration &pc);
+
+ void update (::Deployment::Property &property);
+
+ void update (::Deployment::AssemblyConnectionDescription &acd);
+
+ void update (::Deployment::AssemblyPropertyMapping &apm);
+
+ void update (::Deployment::ComponentPackageDescription &comppkgdesc);
+
+ void update (::Deployment::MonolithicImplementationDescription &mid);
+
+ void update (::Deployment::PackagedComponentImplementation &pci);
+
+ void update (::Deployment::SubcomponentPortEndpoint &spe);
+
+ void update (::Deployment::Requirement &requirement);
+
+ void update (::Deployment::ComponentExternalPortEndpoint &cepe);
+
+ void update (::Deployment::ComponentPackageReference &cpr);
+
+ void update (::Deployment::ComponentImplementationDescription &cid);
+
+ void update (::Deployment::SubcomponentInstantiationDescription &sid);
+
+ void update (::Deployment::NamedImplementationArtifact &named_implementation);
+
+ void update (::Deployment::ComponentInterfaceDescription &cid);
+
+ void update (::Deployment::Capability &capability);
+
+ void update (::Deployment::ImplementationArtifactDescription &iad);
+
+ void update (::Deployment::ImplementationRequirement &ir);
+
+ void update (::Deployment::ImplementationDependency &id);
+
+ void update (::Deployment::ComponentAssemblyDescription& cad);
+
+protected:
+
+ void clear_list ();
+
+private:
+
+ ACE_CString server_path_;
+
+ /// Create a doubly link list
+ ACE_Double_Linked_List<ZIP_File_Info> file_list_;
+
+ ACE_CString package_;
+ bool success_;
+};
+
+#include /**/ "ace/post.h"
+
+#endif /* PC_UPDATER_H */
diff --git a/modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp
new file mode 100644
index 00000000000..a5f5ec5fb2e
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.cpp
@@ -0,0 +1,20 @@
+// $Id$
+#ifndef PC_UPDATER_T_C
+#define PC_UPDATER_T_C
+#include "PC_Updater.h"
+#include "PC_Updater_T.h"
+
+namespace PC_Updater_T
+{
+ /// Dumps a sequence
+ template <typename SEQUENCE>
+ void update_sequence (SEQUENCE &seq, PC_Updater* updater)
+ {
+ CORBA::ULong const size = seq.length ();
+
+ for (CORBA::ULong i = 0; i < size; ++i)
+ updater->update (seq[i]);
+ }
+}
+
+#endif /* PC_Updater_C */
diff --git a/modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.h b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.h
new file mode 100644
index 00000000000..0696c685e2b
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater_T.h
@@ -0,0 +1,40 @@
+
+/* -*- C++ -*- */
+
+//==================================================================
+/**
+ * file PC_Updater_T.h
+ *
+ * $Id$
+ *
+ * author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ */
+//=====================================================================
+
+#ifndef CIAO_CONFIG_HANDLERS_PC_UPDATER_T_H
+#define CIAO_CONFIG_HANDLERS_PC_UPDATER_T_H
+#include /**/ "ace/pre.h"
+
+#include "ace/config-lite.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace PC_Updater_T
+{
+ template <typename SEQUENCE>
+ static void update_sequence (SEQUENCE &seq);
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "PC_Updater_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("PC_Updater_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_CONFIG_HANDLERS_PC_Updater_T_H*/
diff --git a/modules/CIAO/DAnCE/RepositoryManager/README b/modules/CIAO/DAnCE/RepositoryManager/README
new file mode 100644
index 00000000000..322b00098ac
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/README
@@ -0,0 +1,46 @@
+This is the README file for the Repository Manager (RM).
+
+Building RM:
+In order to be able to compile the RM you need to have ZLIB lib because the RM
+uses it to read the contents of CCM packages. In order to compile the RM
+successfully you will need to do the following:
+1.Download the binary version of ZLIB or build it yourself
+3.Create an "include" and a "lib" subdirectory. Then copy the libraries files into
+ the "lib" subdirectory and copy zlib.h into the "include" subdirectory.
+4.Set $ZLIB_ROOT to point to the directories where you placed the libraries and
+ the include files.
+5.Turn on zzip and zlib in default.features for MPC.
+6.MPC will handle the rest.
+
+If you want to get the component package through http server:
+1.Be sure to set JAWS_DOCUMENT_ROOT to the installation path of the RepoMan, i.e., $CIAO_ROOT/DAnCE/RepositoryManager.
+2.Start JAWS: $ACE_ROOT/apps/JAWS/server/main
+
+Start RM:
+1.Using ior file:
+ RepositoryManagerDaemon -o
+2.Using Naming Service:
+ RepositoryManagerDaemon -v [NameofRM]
+
+Using RMadmin:
+1.Install component package: (use BasicSP for example)
+ Be sure you have BasicSP.cpk in the $CIAO_ROOT/DAnCE/RepositoryManager/packages
+ > RMadmin -o -n BasicSP -i -l packages/BasicSP.cpk
+ or
+ > RMadmin -o -n BasicSP -i -l http://127.0.0.1:5432/packages/BasicSP.cpk (If the JAWS is started)
+ This will create the BasicSP directory, BasicSP.cpk file and BasicSP.epc file in the
+ $CIAO_ROOT/DAnCE/RepositoryManager/RepositoryManager/
+2.Delete component package: (use BasicSP for example)
+ > RMadmin -o -n BasicSP -d
+3.Find component package by its name: (use BasicSP for example)
+ > RMadmin -o -n BasicSP -f
+4.Stop RM:
+ > RMadmin -o -s
+ This will create the RM_record file in the $CIAO_ROOT/DAnCE/RepositoryManager/RepositoryManager/ which record the
+ names and UUIDs of the installed component packages.
+
+
+
+
+
+
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp b/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp
new file mode 100644
index 00000000000..8610547a828
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp
@@ -0,0 +1,264 @@
+// $Id$
+
+#include "RM_Helper.h"
+#include "ace/Auto_Ptr.h" //for Auto_Ptr
+#include "ace/OS_NS_fcntl.h" //for open
+#include "ace/OS_NS_unistd.h" //for close
+#include "ace/OS_NS_sys_stat.h" //for filesize and mkdir
+#include "ace/OS_NS_string.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+void
+RM_Helper::pc_to_cdr (const Deployment::PackageConfiguration& pc, TAO_OutputCDR& cdr)
+{
+ cdr << pc;
+}
+
+
+void
+RM_Helper::cdr_to_pc (Deployment::PackageConfiguration& pc, TAO_InputCDR& cdr)
+{
+ cdr >> pc;
+}
+
+bool
+RM_Helper::externalize (const Deployment::PackageConfiguration& pc, const char* path)
+{
+ size_t bufsiz = 0;
+ TAO_OutputCDR out (bufsiz);
+
+ RM_Helper::pc_to_cdr (pc, out);
+
+ const ACE_Message_Block* mb = out.begin ();
+
+ return write_pc_to_disk (path, *(const_cast<ACE_Message_Block*> (mb)));
+}
+
+
+bool
+RM_Helper::reincarnate (Deployment::PackageConfiguration& pc, const char* path)
+{
+ size_t length = 0;
+ ACE_Auto_Ptr<ACE_Message_Block> mb (read_pc_from_disk (path, length));
+
+ if (!mb.get ())
+ return false;
+
+ TAO_InputCDR in (mb.get ());
+
+ RM_Helper::cdr_to_pc (pc, in);
+
+ return true;
+}
+
+
+/// This function attempts to copy the file from a specified location
+/// to another specified location on the hard disk.
+bool
+RM_Helper::copy_from_disk_to_disk (const char* from_path, const char* to_path)
+{
+ if (ACE_OS::strcmp (from_path, to_path) == 0)
+ return true;
+
+ // Open the files
+ ACE_HANDLE from_handle = ACE_OS::open (from_path, O_RDONLY);
+ if (from_handle == ACE_INVALID_HANDLE)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::copy_from_disk_to_disk] file open error")),
+ 0);
+
+ ACE_stat file_info;
+ ACE_OS::fstat (from_handle, &file_info);
+ ACE_UINT64 file_length = file_info.st_size;
+
+ ACE_HANDLE to_handle = ACE_OS::open (to_path, O_CREAT | O_TRUNC | O_WRONLY);
+ if (to_handle == ACE_INVALID_HANDLE)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::copy_from_disk_to_disk] file creation error")),
+ 0);
+
+
+ // Read the contents of the file into the buffer and write the data to another file
+ ACE_Message_Block *mb = 0;
+ size_t length;
+ size_t number = 0;
+ bool last = false;
+
+ while (true)
+ {
+ if ((file_length - BUFSIZ*number) > BUFSIZ)
+ length = BUFSIZ;
+ else
+ {
+ length = static_cast<size_t> (file_length - BUFSIZ*number);
+ last = true;
+ }
+
+ mb = new ACE_Message_Block (length);
+
+ if (ACE_OS::read_n (from_handle, mb->wr_ptr (), length) == -1)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::copy_from_disk_to_disk] file read error")),
+ 0);
+
+ ++number;
+
+ mb->length (length);
+
+ for (ACE_Message_Block *curr = mb; curr != 0; curr = curr->cont ())
+ if (ACE_OS::write_n (to_handle, curr->rd_ptr (), curr->length ()) == -1)
+ {
+ mb->release ();
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::copy_from_disk_to_disk] file write error")),
+ 0);
+ }
+
+ mb->release ();
+
+ if (last)
+ break;
+ }
+
+ // Close the files
+ ACE_OS::close (from_handle);
+ ACE_OS::close (to_handle);
+
+ return true;
+}
+
+
+/// This function attempts to write a sequence of bytes from an
+/// ACE_Message_Block to a specified location. A 0 is returned
+/// in the case of an error and a 1 upon success
+bool RM_Helper::write_to_disk (
+ const char* full_path,
+ ACE_Message_Block& mb,
+ bool replace
+ )
+{
+ ACE_stat stat;
+
+ if (ACE_OS::stat(full_path, &stat) != -1 && !replace)
+ return false;
+
+ // Open a file handle to the local filesystem
+ ACE_HANDLE handle = ACE_OS::open (full_path, O_CREAT | O_TRUNC | O_WRONLY);
+ if (handle == ACE_INVALID_HANDLE)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::write_to_disk] file creation error")),
+ false);
+
+ // Write the data to the file
+ for (ACE_Message_Block * curr = &mb; curr != 0; curr = curr->cont ())
+ if (ACE_OS::write_n (handle, curr->rd_ptr(), curr->length()) == -1)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("write error")),
+ false);
+
+ // Close the file handle
+ ACE_OS::close (handle);
+
+ return true;
+}
+
+
+/// This function attempts to write a sequence of bytes from an
+/// ACE_Message_Block to a specified location. A 0 is returned
+/// in the case of an error and a 1 upon success
+///
+/// @note This function write the contents in a way that preserves the
+/// structure of the ACE_Message_Block. It is relevant for
+/// PackageConfigurations ONLY
+bool RM_Helper::write_pc_to_disk (
+ const char* full_path,
+ ACE_Message_Block& mb,
+ bool replace
+ )
+{
+ ACE_stat stat;
+
+ if (ACE_OS::stat(full_path, &stat) != -1 && !replace)
+ return false;
+
+ // Open a file handle to the local filesystem
+ ACE_HANDLE const handle = ACE_OS::open (full_path, O_CREAT | O_TRUNC | O_WRONLY);
+ if (handle == ACE_INVALID_HANDLE)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::write_to_disk] file creation error")),
+ false);
+
+ // write the data to the file
+ for (ACE_Message_Block * curr = &mb; curr != 0; curr = curr->cont ())
+ if (ACE_OS::write_n (handle, curr->rd_ptr(), curr->length()) == -1)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("write error")),
+ 0);
+
+ // Close the file handle
+ ACE_OS::close (handle);
+
+ return true;
+}
+
+
+/// Function to read the contents of a file from disk into an ACE_Message_Block
+/// returns a pointer to an ACE_Message_Block and updates the lenght on success
+/// 0 on failure
+ACE_Message_Block*
+RM_Helper::read_pc_from_disk (
+ const char* full_path,
+ size_t &length
+ )
+{
+ length = 0;
+
+ // Open the file
+ ACE_HANDLE const handle = ACE_OS::open (full_path, O_RDONLY);
+ if (handle == ACE_INVALID_HANDLE)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::read_mb_from_disk] file open error")),
+ 0);
+
+ ACE_stat file_info;
+ ACE_OS::fstat (handle, &file_info);
+
+ // Get and check the length of the file
+ length = static_cast<size_t> (file_info.st_size);
+
+ ACE_INT64 check = length;
+ if (check != file_info.st_size)
+ {
+ length = 0;
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::read_mb_from_disk] file length error")),
+ 0);
+ }
+
+ // Read the contents of the file into the buffer
+ ACE_Message_Block* mb = 0;
+ ACE_NEW_RETURN (mb, ACE_Message_Block (length + 1), 0);
+
+ if (ACE_OS::read_n (handle, mb->wr_ptr (), length) == -1)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[RM::read_mb_from_disk] file read error")),
+ 0);
+
+ mb->length (length);
+
+ // Close the file handle
+ ACE_OS::close (handle);
+
+ return mb;
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.h b/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.h
new file mode 100644
index 00000000000..bf234440a30
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.h
@@ -0,0 +1,77 @@
+
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file RM_Helper.h
+ *
+ * $Id$
+ *
+ * This class aggregates a number of helper functions used by the
+ * CIAO RepositoryManager
+ *
+ * @author Stoyan Paunov
+ */
+//=============================================================================
+
+#ifndef RM_HELPER_H_
+#define RM_HELPER_H_
+
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "tao/CDR.h"
+#include "ace/Message_Block.h"
+
+
+class RM_Helper
+{
+public:
+
+ static void pc_to_cdr (const Deployment::PackageConfiguration& pc, TAO_OutputCDR& cdr);
+
+ static void cdr_to_pc (Deployment::PackageConfiguration& pc, TAO_InputCDR& cdr);
+
+ static bool externalize (const Deployment::PackageConfiguration& pc, const char* path);
+
+ static bool reincarnate (Deployment::PackageConfiguration& pc, const char* path);
+
+ /**
+ * Function that copies the file from a specified location to another
+ * specified location on the hard disk.
+ * @retval true on success
+ * @retval false on error
+ */
+ static bool copy_from_disk_to_disk (const char* from_path, const char* to_path);
+
+ /**
+ * Function that writes out a file to a specified location on the hard disk
+ * @retval true on success
+ * @retval false on already exists and replace == false
+ * @retval false on error
+ */
+ static bool write_to_disk (const char* full_path,
+ ACE_Message_Block& mb,
+ bool replace = true);
+
+ /**
+ * Function that writes out a file to a specified location on the hard disk
+ * @retval true on success
+ * @retval false on already exists and replace == false
+ * @retval 0 on error
+ * @note This function is relevant for PackageConfigurations ONLY
+ */
+ static bool write_pc_to_disk (const char* full_path,
+ ACE_Message_Block& mb,
+ bool replace = true);
+
+ /**
+ * Function to read the contents of a file from disk into an
+ * ACE_Message_Block returns a pointer to an ACE_Message_Block and updates
+ * the lenght on success
+ * @retval 0 on failure
+ */
+ static ACE_Message_Block* read_pc_from_disk (const char* full_path,
+ size_t &length);
+
+};
+
+#endif
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp
new file mode 100644
index 00000000000..32fb869049b
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp
@@ -0,0 +1,274 @@
+
+/* -*- C++ -*- */
+
+//======================================================================
+/**
+ * @file RepositoryManager.cpp
+ *
+ * $Id$
+ *
+ * Description:
+ * Main driver program for the CIAO RepositoryManager
+ * Please run as follows:
+ * RepositoryManagerDaemon [int:nthreads]
+ *
+ * @author Stoyan Paunov
+ */
+//======================================================================
+
+#include "RepositoryManager_Impl.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/streams.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Task.h"
+#include "ace/Get_Opt.h"
+#include "ace/SString.h"
+
+#include "orbsvcs/CosNamingC.h"
+
+namespace CIAO
+{
+ namespace RepositoryManager
+ {
+ /// Name of the file holding the IOR of the RM
+ const char * RMior = "RepositoryManagerDaemon.ior";
+
+ // Name of RepoMan
+ const char * repoman_name_ = "RepositoryManager";
+
+ //Name service of the RM
+ const char * RMname_service = "RepositoryManager";
+
+ /// Default number of worker threads to run in the multi-threaded RM
+ static unsigned int nthreads = 3;
+ static ACE_CString HTTPserver = "127.0.0.1:5432";
+
+ static bool register_with_ns_ = false;
+ static bool write_to_ior_ = true;
+ }
+}
+
+// Forward declaration
+bool parse_args (int argc, ACE_TCHAR *argv[]);
+
+/**
+ * @class Worker
+ *
+ * Class that implements the service routine of the worker threads
+ * of the repository manager
+ */
+class Worker : public ACE_Task_Base
+{
+public:
+ /// ctor
+ Worker (CORBA::ORB_ptr orb);
+
+ /// The thread entry point.
+ virtual int svc (void);
+
+private:
+ /// The orb
+ CORBA::ORB_var orb_;
+};
+
+bool
+write_ior_file (CORBA::ORB_ptr orb,
+ CIAO::RepositoryManagerDaemon_ptr obj)
+{
+ CORBA::String_var ior = orb->object_to_string (obj);
+
+ FILE* RMior_file = ACE_OS::fopen (DAnCE::RepositoryManager::RMior, "w");
+
+ if (RMior_file)
+ {
+ ACE_OS::fprintf (RMior_file,
+ "%s",
+ ior.in ());
+ ACE_OS::fclose (RMior_file);
+ }
+ else
+ {
+ return false;
+ }
+
+ return true;
+}
+
+bool
+register_with_ns (CORBA::ORB_ptr orb,
+ CIAO::RepositoryManagerDaemon_ptr obj)
+{
+ if (ACE_OS::strlen (DAnCE::RepositoryManager::repoman_name_) > 0)
+ {
+ DAnCE::RepositoryManager::RMname_service =
+ DAnCE::RepositoryManager::repoman_name_;
+ }
+
+ // Naming Service related operations
+ CORBA::Object_var naming_context_object =
+ orb->resolve_initial_references ("NameService");
+
+ CosNaming::NamingContext_var naming_context =
+ CosNaming::NamingContext::_narrow (naming_context_object.in ());
+
+ // Initialize the Naming Sequence
+ CosNaming::Name name (1);
+ name.length (1);
+
+ // String dup required for MSVC6
+ name[0].id = CORBA::string_dup (DAnCE::RepositoryManager::RMname_service);
+
+ // Register the servant with the Naming Service
+ naming_context->rebind (name, obj);
+
+ return true;
+}
+
+///Main function
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Init the ORB
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ if (!parse_args (argc, argv))
+ return -1;
+
+ // Get the root POA object
+ CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA");
+
+ // Downcast to POA type
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in ());
+
+ // Activate the POA manager
+ PortableServer::POAManager_var mgr = root_poa->the_POAManager ();
+ mgr->activate ();
+
+ // Create a servant
+ CIAO_RepositoryManagerDaemon_i* repo = 0;
+ ACE_NEW_RETURN (repo,
+ CIAO_RepositoryManagerDaemon_i (
+ orb.in (),
+ DAnCE::RepositoryManager::HTTPserver.c_str (),
+ DAnCE::RepositoryManager::repoman_name_),
+ 1);
+
+ // Transfer ownership to the POA
+ PortableServer::ServantBase_var owner_transfer(repo);
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (ci_srv);
+ CORBA::Object_var repo_object = root_poa->id_to_reference (id.in ());
+ CIAO::RepositoryManagerDaemon_var RepositoryManagerDaemon =
+ CIAO::RepositoryManagerDaemon::_narrow (repo_object.in ());
+
+ bool retval = false;
+
+ if (DAnCE::RepositoryManager::write_to_ior_)
+ {
+ retval = write_ior_file (orb.in (), RepositoryManagerDaemon.in ());
+ }
+ if (retval && DAnCE::RepositoryManager::register_with_ns_)
+ {
+ retval = register_with_ns (orb.in (), RepositoryManagerDaemon.in ());
+ }
+
+ if (!retval)
+ {
+ return -1;
+ }
+
+ Worker worker (orb.in ());
+ if (worker.activate (THR_NEW_LWP | THR_JOINABLE,
+ DAnCE::RepositoryManager::nthreads) != 0)
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ "Cannot activate worker threads\n"),
+ 1);
+
+ worker.thr_mgr ()->wait ();
+
+ DANCE_DEBUG (6, (LM_DEBUG, "event loop finished\n"));
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception &ex) {
+ cerr << "CORBA Exception: " << ex << endl;
+
+ return 1;
+ }
+
+ return 0;
+}
+
+
+// ****************************************************************
+
+///Code to parse the arguments
+
+ bool
+ parse_args (int argc, ACE_TCHAR *argv[])
+ {
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("ov:s:n:"));
+ int c;
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ DAnCE::RepositoryManager::write_to_ior_ = true;
+ DAnCE::RepositoryManager::register_with_ns_ = false;
+ break;
+ case 'v':
+ DAnCE::RepositoryManager::write_to_ior_ = false;
+ DAnCE::RepositoryManager::register_with_ns_ = true;
+ DAnCE::RepositoryManager::repoman_name_ = get_opts.opt_arg ();
+ break;
+ case 's':
+ DAnCE::RepositoryManager::HTTPserver = get_opts.opt_arg ();
+ break;
+ case 'n':
+ DAnCE::RepositoryManager::nthreads = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case '?': // display help for use of the server.
+ DANCE_DEBUG (8, (LM_INFO,
+ ACE_TEXT("usage: %s\n")
+ ACE_TEXT("-o <using ior file>\n")
+ ACE_TEXT("-v <name of naming service>\n")
+ ACE_TEXT("-s <IP:PORT for HTTP server>\n")
+ ACE_TEXT("-n <number of threads>\n"),
+ argv [0]));
+ return false;
+ break;
+ default:
+ ;
+ }
+
+ return true;
+ }
+
+
+
+// ****************************************************************
+
+///Constuctor for the worker class
+Worker::Worker (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+///implementation of the service routine inherited from ACE::Task_Base
+
+int Worker::svc (void)
+{
+ try
+ {
+ this->orb_->run ();
+ }
+ catch (const CORBA::Exception&)
+ {
+ }
+ return 0;
+}
+
+
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.mpc b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.mpc
new file mode 100644
index 00000000000..beaef6efe88
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.mpc
@@ -0,0 +1,47 @@
+// -*- MPC -*-
+// $Id$
+
+project (DAnCE_RepositoryManagerDaemon_IDL) : taoidldefaults {
+ custom_only = 1
+ IDL_Files {
+ RepositoryManagerDaemon.idl
+ }
+}
+
+project (DAnCE_RepositoryManager_Exec) : dance_logger, dance_config_handlers, dance_repositorymanagerbase, dance_repositorymanager_skel, naming, iortable, utils, zlib, minizip, dance_exe {
+ exename = dance_repository_manager
+ after += DAnCE_RepositoryManagerDaemon_IDL
+ requires += zlib
+
+ Source_Files {
+ RepositoryManagerDaemonC.cpp
+ RepositoryManagerDaemonS.cpp
+ ZIP_Wrapper.cpp
+ RepositoryManager_Impl.cpp
+ RM_Helper.cpp
+ URL_Parser.cpp
+ PC_Updater.cpp
+ Repository_Manager_Module.cpp
+ Repository_Manager.cpp
+ }
+ Template_Files {
+ PC_Updater_T.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project (DAnCE_RepositoryManager_Admin_Exec) : dance_repositorymanager_stub, dance_config_handlers, naming, dance_exe, dance_logger {
+ exename = dance_rm_admin
+
+ after += DAnCE_RepositoryManagerDaemon_IDL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ repository_manager_admin.cpp
+ RepositoryManagerDaemonC.cpp
+ repository_manager_admin_exec.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl
new file mode 100644
index 00000000000..9deac4abd0e
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl
@@ -0,0 +1,13 @@
+// $Id$
+
+#include "DAnCE/Deployment/Deployment_RepositoryManager.idl"
+
+module CIAO
+{
+ interface RepositoryManagerDaemon : Deployment::RepositoryManager
+ {
+ // Shutdown the daemon process.
+ oneway void shutdown ();
+ };
+};
+
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
new file mode 100644
index 00000000000..f3df372d8dc
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
@@ -0,0 +1,1258 @@
+// $Id$
+
+//====================================================================
+/**
+ * @file RepositoryManager_Impl.cpp
+ *
+ * $Id$
+ *
+ * Description: Actial implementation of the RepoMan
+ *
+ * @author Stoyan Paunov
+ * Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ */
+//====================================================================
+
+#include "RepositoryManager_Impl.h"
+
+#include "ace/OS_NS_fcntl.h" //for open
+#include "ace/OS_NS_unistd.h" //for close
+#include "ace/OS_NS_sys_stat.h" //for filesize and fstat and mkdir
+#include "ace/OS_NS_string.h" //for ACE_CString
+#include "ace/OS_Memory.h" //for ACE_NEW* macros
+
+
+//to remove a file or dir from the local filesystem need remove () from stdio.h
+// ---> need to include ace/OS_NS_stdio.h which would include the correct file for any OS!
+#include "ace/OS_NS_stdio.h"
+
+#include "ZIP_Wrapper.h" //Wrapper around zzip
+#include "ace/Containers_T.h" //for ACE_Double_Linked_List
+#include "ace/Malloc_Allocator.h" //for ACE_New_Allocator
+
+//for the PackageConfiguration parsing
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+#include "Package_Handlers/PCD_Handler.h"
+#include "XML_Typedefs.h"
+
+#include "RM_Helper.h" //to be able to externalize/internalize a PackageConfiguration
+#include "ace/Message_Block.h" //for ACE_Message_Block
+
+#include "ace/Thread.h" //for obtaining the ID of the current thread
+#include "ace/OS_NS_stdlib.h" //for itoa ()
+#include "ace/Dirent.h"
+
+#include "URL_Parser.h" //for parsing the URL
+#include "tao/HTTP_Client.h" //the HTTP client class to downloading packages
+
+#include "PC_Updater.h" //A visitor class to walk through the elements of the PC
+
+#include "ace/Configuration_Import_Export.h"
+
+namespace
+{
+ static const char* PC_EXTENSION = ".epc";
+
+ static const ACE_TCHAR *RM_RECORD_FILE = ACE_TEXT("RM_record");
+ static const ACE_TCHAR *RM_RECORD_NAME_SECTION = ACE_TEXT("Names");
+ static const ACE_TCHAR *RM_RECORD_UUID_SECTION = ACE_TEXT("UUIDs");
+}
+
+namespace DAnCE
+{
+
+ //-----------------------------------------------------------------
+ //Constructor
+ //
+ //-----------------------------------------------------------------
+
+ RepositoryManagerDaemon_i::RepositoryManagerDaemon_i
+ (CORBA::ORB_ptr the_orb, const ACE_TCHAR* server, const ACE_TCHAR* install_dir)
+ : the_orb_ (CORBA::ORB::_duplicate (the_orb)),
+ install_root_ (""),
+ HTTP_server_ ("http://"),
+ install_path (install_dir)
+ {
+ //form the path
+ this->HTTP_server_ += server;
+ this->HTTP_server_ += "/";
+ this->HTTP_server_ += install_path;
+ this->HTTP_server_ += "/";
+
+ //create directory in which the packages will be stored
+ ACE_OS::mkdir(install_path.c_str ());
+ //if dir already exists a -1 is returned
+ //we ignore this, just need to make sure the directory exists
+
+ ACE_OS::getcwd (this->cwd_, TEMP_LEN);
+
+ this->install_root_ = this->cwd_;
+ this->install_root_ += "/";
+ this->install_root_ += install_path;
+
+ // Install the configuration files to get the names, UUIDs, & types info.
+ ACE_Configuration_Heap cfg;
+ cfg.open ();
+ ACE_Configuration_Section_Key root = cfg.root_section ();
+
+ ACE_Registry_ImpExp config_importer (cfg);
+ ACE_OS::chdir (install_path.c_str ());
+ config_importer.import_config (RM_RECORD_FILE);
+ ACE_OS::chdir (this->cwd_);
+
+ ACE_CString name;
+ ACE_Configuration::VALUETYPE type;
+ ACE_CString path;
+
+ ACE_Configuration_Section_Key NameSection;
+ cfg.open_section (root, RM_RECORD_NAME_SECTION, 1, NameSection);
+ u_int index = 0;
+ while (!cfg.enumerate_values (NameSection, index, name, type))
+ {
+ cfg.get_string_value (NameSection, name.c_str (), path);
+ this->names_.bind (name, path);
+
+ ++index;
+ }
+
+ ACE_Configuration_Section_Key UUIDSection;
+ cfg.open_section (root, RM_RECORD_UUID_SECTION, 1, UUIDSection);
+ index = 0;
+ while (!cfg.enumerate_values (UUIDSection, index, name, type))
+ {
+ cfg.get_string_value (UUIDSection, name.c_str (), path);
+ this->uuids_.bind (name, path);
+
+ ++index;
+ }
+
+ // Add types
+ index = 0;
+ for (PCMap_Iterator iter = this->names_.begin ();
+ iter != this->names_.end ();
+ ++iter, ++index)
+ {
+ PCEntry& element = *iter;
+
+ ::Deployment::PackageConfiguration_var pc = this->findPackageByName (element.ext_id_.c_str ());
+
+ if(!this->add_type (pc, element.ext_id_.c_str ()))
+ DANCE_ERROR (1, (LM_ERROR, "Failed to add the type\n"));
+ }
+
+ CIAO::Config_Handlers::XML_Helper::_path_resolver.add_path (ACE_TEXT ("DANCE_ROOT"),
+ ACE_TEXT ("/docs/schema/"));
+ CIAO::Config_Handlers::XML_Helper::_path_resolver.add_path (ACE_TEXT ("CIAO_ROOT"),
+ ACE_TEXT ("/docs/schema/"));
+
+ }
+
+ //-----------------------------------------------------------------
+ //Destructor
+ //
+ //-----------------------------------------------------------------
+
+ RepositoryManagerDaemon_i::~RepositoryManagerDaemon_i (void)
+ {
+ this->names_.unbind_all ();
+ this->uuids_.unbind_all ();
+ this->types_.unbind_all ();
+ }
+
+ //-----------------------------------------------------------------
+ //shutdown
+ //
+ //-----------------------------------------------------------------
+
+ void RepositoryManagerDaemon_i::shutdown ()
+
+ {
+ // Release resource.
+ this->names_.unbind_all ();
+ this->uuids_.unbind_all ();
+ this->types_.unbind_all ();
+
+ this->the_orb_->shutdown (0);
+ }
+
+
+ //-----------------------------------------------------------------
+ //installPackage
+ //
+ //-----------------------------------------------------------------
+
+ void RepositoryManagerDaemon_i::installPackage (const char * installationName,
+ const char * location,
+ ::CORBA::Boolean replace)
+ {
+
+ PCEntry *entry = 0;
+ if (this->names_.find (ACE_CString (installationName), entry) == 0)
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Found package %s already installed.\n"));
+ if (!replace)
+ throw Deployment::NameExists ();
+ else
+ deletePackage (installationName);
+ }
+
+ //Now lets form the path for the local file
+ //NOTE: I need the absolute path because I will change to a subdirectory
+ //when I am parsing the descriptors
+
+ ACE_CString path (this->install_root_);
+ path += "/";
+ path += installationName;
+
+ ACE_CString package_path (path);
+ package_path += ".cpk"; //package extension
+
+ ACE_CString pc_path (path);
+ pc_path += PC_EXTENSION; //external PackageConfiguration extension
+
+
+ ACE_CString descriptor_dir (path);
+ descriptor_dir += "/descriptors/"; //location of the descriptor directory
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Package Path: %s\n",
+ package_path.c_str ()));
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Descriptor path: %s\n",
+ descriptor_dir.c_str ()));
+
+ //check if URL or local file
+ //download or load into memory
+
+ if (ACE_OS::strstr (location, "http://"))
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Downloading package over HTTP: %s\n",
+ location));
+
+ ACE_Message_Block* mb = 0;
+ ACE_NEW_THROW_EX (mb, ACE_Message_Block (), CORBA::NO_MEMORY ());
+
+ try
+ {
+ //get the remote file
+ if (!HTTP_Get (location, *mb))
+ {
+ throw CORBA::INTERNAL ();
+ }
+
+ // Write file to designated location on disk
+ if (!RM_Helper::write_to_disk (package_path.c_str (), *mb))
+ {
+ throw CORBA::INTERNAL ();
+ }
+
+ mb->release ();
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Caught unexpected exception while fetching path %s\n",
+ location));
+
+ mb->release ();
+ throw;
+ }
+ }
+ else
+ {
+ if (!RM_Helper::copy_from_disk_to_disk (location, package_path.c_str ()))
+ throw CORBA::INTERNAL ();
+ }
+
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Uncompressing file %s to directory %s\n",
+ package_path.c_str (),
+ this->install_root_.c_str ()));
+
+ ZIP_Wrapper::uncompress (const_cast<char*> (package_path.c_str ()),
+ const_cast<char*> (this->install_root_.c_str ()),
+ false //not verbose
+ );
+
+ //Start the parsing
+
+ ACE_CString pc_name;
+
+ this->find_PC_name (const_cast<char*> (package_path.c_str ()), pc_name);
+
+ //if the PackageConfiguration name cannot be found, then there is nothing to install
+ if (pc_name == "")
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Unable to find PC name %s in path %s\n",
+ pc_name.c_str (),
+ package_path.c_str ()));
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+
+ throw Deployment::PackageError ();
+ }
+
+ //TODO: move exception throwing out of this func. User boolean error handling!!!
+ //TODO: check for errors!
+ Deployment::PackageConfiguration_var pc;
+ pc = this->retrieve_PC_from_descriptors (const_cast<char*> (pc_name.c_str ()),
+ descriptor_dir.c_str ());
+
+
+ if (this->uuids_.find (ACE_CString (pc->UUID), entry) == 0)
+ {
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+
+ throw Deployment::NameExists ();
+ }
+
+ //forming the server path info
+ ACE_CString server_path (this->HTTP_server_);
+ server_path += installationName;
+
+ //NOTE: ComponentPackageReferences are currently NOT supported
+ if (!(pc->basePackage.length () > 0))
+ {
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ PC_Updater updater (server_path, package_path);
+
+ if (!updater.update (pc))
+ {
+ DANCE_DEBUG (6, (LM_ERROR, DLINFO "[RM] problem updating the PackageConfiguration!\n"));
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ throw Deployment::PackageError ();
+ }
+
+
+ //now lets externalize the PackageConfiguration, so that we can access it later on
+ //without having to do the whole parsing again.
+ //NOTE: Order here is important. Do not populate maps before the externalization!
+ RM_Helper::externalize (pc, pc_path.c_str ());
+
+ //insert the package into the database
+ if (this->names_.bind (ACE_CString (installationName), path) == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM] could not bind %s.\n",
+ installationName));
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ //remove the PackageConfiguration externalization
+ remove (pc_path.c_str ());
+
+ //throw exception
+ throw CORBA::INTERNAL ();
+ }
+
+ //ALSO NEED THE UUID here
+ if (this->uuids_.bind (ACE_CString (pc->UUID), path) == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM] could not bind %s.\n",
+ ACE_CString (pc->UUID).c_str ()));
+
+ //unbind the name
+ this->names_.unbind (installationName);
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ //remove the PackageConfiguration externalization
+ remove (pc_path.c_str ());
+
+ //throw exception
+ throw CORBA::INTERNAL ();
+ }
+
+ //now add the type interface
+ if(!this->add_type (pc, installationName))
+ DANCE_ERROR (1, (LM_ERROR, "Failed to add the type\n"));
+
+ this->dump ();
+
+ this->save ();
+
+ DANCE_DEBUG (8, (LM_INFO,
+ "Installed PackageConfiguration \n\tname: %s \n\tuuid: %s\n",
+ installationName, ACE_CString (pc->UUID).c_str ()));
+ }
+
+
+ //-----------------------------------------------------------------
+ //createPackage
+ //
+ //-----------------------------------------------------------------
+
+ void RepositoryManagerDaemon_i::createPackage (const char * installationName,
+ const ::Deployment::PackageConfiguration & package,
+ const char * baseLocation,
+ ::CORBA::Boolean replace)
+ {
+ ::Deployment::PackageConfiguration pc = package;
+
+ // Find if there is a PackageConfiguration with the same name.
+ PCEntry *entry = 0;
+ if (this->names_.find (ACE_CString (installationName), entry) == 0)
+ {
+ if (!replace)
+ throw Deployment::NameExists ();
+ else
+ deletePackage (installationName);
+ }
+
+ // Find if there is a PackageConfiguration with the same uuid.
+ if (this->uuids_.find (ACE_CString (pc.UUID), entry) == 0)
+ throw Deployment::NameExists ();
+
+ // Find if the PackageConfiguration has a basePackage.
+ // NOTE: ComponentPackageReferences are currently NOT supported.
+ if (!(pc.basePackage.length () > 0))
+ throw CORBA::NO_IMPLEMENT ();
+
+ // Form the path for the local file
+ ACE_CString path (this->install_root_);
+ path += "/";
+ path += installationName;
+
+ ACE_CString package_path (path);
+ package_path += ".cpk"; //package extension
+
+ ACE_CString pc_path (path);
+ pc_path += PC_EXTENSION; //external PackageConfiguration extension
+
+ // Check if URL or local file, download or load into memory
+ if (ACE_OS::strstr (baseLocation, "http://"))
+ {
+ //TODO: how can I incorporate a Auto_Ptr is explicit release is needed
+ ACE_Message_Block* mb;
+ ACE_NEW_THROW_EX (mb, ACE_Message_Block (), CORBA::NO_MEMORY ());
+
+ //get the remote file
+ if (!HTTP_Get (baseLocation, *mb))
+ {
+ mb->release ();
+ throw CORBA::INTERNAL ();
+ }
+
+ // Write file to designated location on disk
+ if (!RM_Helper::write_to_disk (package_path.c_str (), *mb))
+ {
+ mb->release ();
+ throw CORBA::INTERNAL ();
+ }
+
+ mb->release ();
+ }
+ else
+ {
+ if (!RM_Helper::copy_from_disk_to_disk (baseLocation, package_path.c_str ()))
+ throw CORBA::INTERNAL ();
+ }
+
+
+ ZIP_Wrapper::uncompress (const_cast<char*> (package_path.c_str ()),
+ const_cast<char*> (this->install_root_.c_str ()),
+ false //not verbose
+ );
+
+ // Form the server path info
+ ACE_CString server_path (this->HTTP_server_);
+ server_path += installationName;
+
+ // Update the newly installed package configration informantion.
+ PC_Updater updater (server_path, package_path);
+
+ if (!updater.update (pc))
+ {
+ DANCE_ERROR (1, (LM_ERROR, "[RM] problem updating the PackageConfiguration!\n"));
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ throw Deployment::PackageError ();
+ }
+
+ // Externalize the PackageConfiguration, so that we can access it later on
+ // without having to do the whole parsing again.
+ // NOTE: Order here is important. Do not populate maps before the externalization!
+ RM_Helper::externalize (pc, pc_path.c_str ());
+
+ // Insert the name of the package.
+ if (this->names_.bind (ACE_CString (installationName), path) == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM] could not bind %s.\n",
+ installationName));
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ //remove the PackageConfiguration externalization
+ remove (pc_path.c_str ());
+
+ //throw exception
+ throw CORBA::INTERNAL ();
+ }
+
+ // Insert the UUID of the package.
+ if (this->uuids_.bind (ACE_CString (pc.UUID), path) == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM] could not bind %s.\n",
+ ACE_CString (pc.UUID).c_str ()));
+
+ //unbind the name
+ this->names_.unbind (installationName);
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ //remove the PackageConfiguration externalization
+ remove (pc_path.c_str ());
+
+ //throw exception
+ throw CORBA::INTERNAL ();
+ }
+
+ //now add the type interface
+ //TODO: CHECK if successful
+ if(!this->add_type (pc, installationName))
+ DANCE_ERROR (1, (LM_ERROR, "Failed to add the type\n"));
+
+ this->dump ();
+
+ this->save ();
+
+ DANCE_DEBUG (8, (LM_INFO,
+ "Created PackageConfiguration \n directory: %s \n name: %s \n uuid: %s\n",
+ path.c_str (), installationName, ACE_CString (pc.UUID).c_str ()));
+ }
+
+
+ //-----------------------------------------------------------------
+ //findPackageByName
+ //
+ //-----------------------------------------------------------------
+
+ ::Deployment::PackageConfiguration*
+ RepositoryManagerDaemon_i::findPackageByName (const char * name)
+
+ {
+ // Find out if the PackageConfiguration was installed in the repository,
+ // return it if found or throw and exception otherwise
+
+ PCEntry *entry = 0;
+
+ if (this->names_.find (ACE_CString (name), entry) != 0)
+ throw Deployment::NoSuchName ();
+ //PackageConfiguration was not found
+
+ ACE_CString pc_path (entry->int_id_.c_str ());
+ pc_path += PC_EXTENSION;
+
+ Deployment::PackageConfiguration_var pc;
+ ACE_NEW_THROW_EX (pc,
+ Deployment::PackageConfiguration (),
+ CORBA::NO_MEMORY ());
+
+
+ if(!RM_Helper::reincarnate (pc, pc_path.c_str ()))
+ throw CORBA::INTERNAL ();
+
+ DANCE_DEBUG (8, (LM_INFO, "Successfully looked up \'%s\'.\n", name));
+
+ return pc._retn ();
+ }
+
+
+ //-----------------------------------------------------------------
+ //findPackageByUUID
+ //
+ //-----------------------------------------------------------------
+
+ ::Deployment::PackageConfiguration*
+ RepositoryManagerDaemon_i::findPackageByUUID (const char * UUID)
+
+ {
+ // Find out if the PackageConfiguration was installed in the repository,
+ // return it if found or throw and exception otherwise
+
+ PCEntry *entry = 0;
+
+ if (this->uuids_.find (ACE_CString (UUID), entry) != 0)
+ throw Deployment::NoSuchName ();
+ //PackageConfiguration was not found
+
+ ACE_CString pc_path (entry->int_id_.c_str ());
+ pc_path += PC_EXTENSION;
+
+ Deployment::PackageConfiguration_var pc;
+ ACE_NEW_THROW_EX (pc,
+ Deployment::PackageConfiguration (),
+ CORBA::NO_MEMORY ());
+
+
+ if(!RM_Helper::reincarnate (pc, pc_path.c_str ()))
+ throw CORBA::INTERNAL ();
+
+ DANCE_DEBUG (8, (LM_INFO, "Successfully looked up %s.\n", UUID));
+
+ return pc._retn ();
+ }
+
+ //-----------------------------------------------------------------
+ //findPackageByType
+ //
+ //-----------------------------------------------------------------
+
+ ::CORBA::StringSeq * RepositoryManagerDaemon_i::findNamesByType (const char * type)
+ {
+ CIEntry *entry = 0;
+
+ //find the type in the interface map
+ if (this->types_.find (ACE_CString (type), entry) != 0)
+ {
+ //return an empty sequence
+ CORBA::StringSeq_var seq;
+ ACE_NEW_THROW_EX (seq, CORBA::StringSeq (0), CORBA::NO_MEMORY ());
+
+ return seq._retn ();
+ }
+ else
+ {
+ CISet ci_set = (*entry).int_id_set_;
+
+ CORBA::ULong len = ci_set.size ();
+
+ //allocate a sequence of the right length
+ CORBA::StringSeq_var seq;
+ ACE_NEW_THROW_EX (seq,
+ CORBA::StringSeq (len),
+ CORBA::NO_MEMORY ());
+ seq->length (len);
+
+ //store the elements in the string sequence
+ CISet_Iterator ci_set_iter (ci_set);
+ CORBA::ULong index = 0;
+ for (ci_set_iter = ci_set.begin ();
+ ci_set_iter != ci_set.end () && index < len;
+ ++ci_set_iter, ++index)
+ {
+ seq[index] = CORBA::string_dup ((*ci_set_iter).c_str ());
+ }
+
+ return seq._retn ();
+ }
+ }
+
+
+ //-----------------------------------------------------------------
+ //getAllNames
+ //
+ //-----------------------------------------------------------------
+
+ ::CORBA::StringSeq*
+ RepositoryManagerDaemon_i::getAllNames ()
+
+ {
+ //Map.current_size () gives you the current number with the duplicates
+ //Map.total_size () gives you the allocated space + the empty slots
+ //Apparently the only way to figure out the number of keys is to
+ //count them with an iterator.
+
+ CORBA::ULong num_entries = 0;
+
+ for (PCMap_Iterator i = this->names_.begin ();
+ i != this->names_.end ();
+ ++i)
+ ++num_entries;
+
+ CORBA::StringSeq_var seq;
+ ACE_NEW_THROW_EX (seq, CORBA::StringSeq (num_entries), CORBA::NO_MEMORY ());
+
+
+ seq->length (num_entries);
+
+ CORBA::ULong index = 0;
+ for (PCMap_Iterator iter = this->names_.begin ();
+ iter != this->names_.end () && index < num_entries;
+ ++iter, ++index)
+ {
+ PCEntry& element = *iter;
+ seq[index] = CORBA::string_dup (element.ext_id_.c_str ());
+ }
+
+ DANCE_DEBUG (8, (LM_INFO, "The number of packages %d\n", seq->length ()));
+
+ return seq._retn (); //release the underlying CORBA::StringSeq
+ }
+
+
+ //-----------------------------------------------------------------
+ //getAllTypes
+ //
+ //-----------------------------------------------------------------
+
+ ::CORBA::StringSeq * RepositoryManagerDaemon_i::getAllTypes ()
+ {
+ //Map.current_size () gives you the current number with the duplicates
+ //Map.total_size () gives you the allocated space + the empty slots
+ //Apparently the only way to figure out the number of keys is to
+ //count them with an iterator.
+
+ CORBA::ULong num_entries = 0;
+
+ for (CIMap_Iterator i = this->types_.begin ();
+ i != this->types_.end ();
+ ++i)
+ ++num_entries;
+
+ CORBA::StringSeq_var seq;
+ ACE_NEW_THROW_EX (seq,
+ CORBA::StringSeq (num_entries),
+ CORBA::NO_MEMORY ());
+
+
+ seq->length (num_entries);
+
+ CORBA::ULong index = 0;
+ for (CIMap_Iterator iter = this->types_.begin ();
+ iter != this->types_.end () && index < num_entries;
+ ++iter, ++index)
+
+ {
+ CIEntry& element = *iter;
+ seq[index] = CORBA::string_dup (element.ext_id_.c_str ());
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, "The number of types: %d\n", num_entries));
+
+ return seq._retn (); //release the underlying CORBA::StringSeq
+ }
+
+
+ //-----------------------------------------------------------------
+ //DeletePackage
+ //
+ //-----------------------------------------------------------------
+
+ void RepositoryManagerDaemon_i::deletePackage (const char * installationName)
+ {
+ bool internal_err = false;
+
+ PCEntry *entry = 0;
+
+ if (this->names_.find (ACE_CString (installationName), entry) != 0)
+ throw Deployment::NoSuchName ();
+
+ //cache the package path
+ ACE_CString path (entry->int_id_.c_str ());
+
+ //remove the name association
+ if (this->names_.unbind (installationName) == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "Unable to unbind %s.\n",
+ installationName));
+ internal_err = true;
+ }
+
+ //the package location
+ ACE_CString package_path (path);
+ package_path += ".cpk"; //package extension
+
+ //the PackageConfiguration externalization location
+ ACE_CString pc_path (path);
+ pc_path += PC_EXTENSION; //external PackageConfiguration extension
+
+ Deployment::PackageConfiguration_var pc;
+ ACE_NEW_THROW_EX (pc,
+ Deployment::PackageConfiguration (),
+ CORBA::NO_MEMORY ());
+
+
+ if(!RM_Helper::reincarnate (pc, pc_path.c_str ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Could not reincarnate PC\n"));
+ internal_err = true;
+ }
+
+ if (this->uuids_.unbind (ACE_CString (pc->UUID)) == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Could not remove UUID\n"));
+ internal_err = true;
+ }
+
+ //remove the type from the interface map
+ if (!this->remove_type (pc, installationName))
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Could not remove type\n"));
+ internal_err = true;
+ }
+
+ //actually delete the package here!
+
+ //clean the extracted files
+ remove_extracted_package (path.c_str ());
+ //remove the package
+ remove (package_path.c_str ());
+ //remove the PackageConfiguration externalization
+ remove (pc_path.c_str ());
+
+ this->dump ();
+
+ this->save ();
+
+ if (internal_err)
+ throw CORBA::INTERNAL ();
+ else
+ DANCE_DEBUG (8, (LM_INFO, "Successfully deleted \'%s\'\n", installationName));
+
+ }
+
+
+ //==========================================HELPER METHODS==================================================
+
+ Deployment::PackageConfiguration*
+ RepositoryManagerDaemon_i::retrieve_PC_from_package (char* package)
+ {
+ char temp[128];
+ // ACE_thread_t thread_id = ACE_Thread::self ();
+ char* PID = ACE_OS::itoa (ACE_OS::getpid (), temp, 10);
+
+ ACE_OS::mkdir(PID);
+ //if dir already exists a -1 is returned
+ //we ignore this, just need to make sure the directory exists
+
+ //change the working dir
+ ACE_OS::chdir (PID);
+
+ ACE_CString pcd_name;
+ //extract the necessary descriptors
+ if (extract_descriptor_files (package,
+ pcd_name) < 0)
+ {
+ ACE_OS::chdir (this->cwd_);
+ DANCE_ERROR (1, (LM_ERROR,
+ "(%P|%t) RepositoryManager: error extracting necessary files\n"));
+ throw CORBA::INTERNAL ();
+ }
+
+ Deployment::PackageConfiguration_var pc;
+ //parse the PCD to make sure that there are no package errors
+ try
+ {
+ //CIAO::Config_Handlers::STD_PC_Intf intf (pcd_name.c_str ());
+ //pc = intf.get_PC ();
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "(%P|%t) RepositoryManager: Error parsing the PCD\n"));
+
+ //change back the the old working dir
+ ACE_OS::chdir (this->cwd_);
+ throw Deployment::PackageError ();
+ }
+ //able to parse the PC. So lets install the package in the repo
+
+ //we no longer need the descriptors, so lets erase them!
+ remove_descriptor_files (package);
+
+ //change back the the old working dir
+ ACE_OS::chdir (this->cwd_);
+
+ //now lets erase the directory!
+ ACE_OS::rmdir (PID);
+ //the ACE_OS::rmdir does not work. Possibly because we need to delete
+ //the contents first. I will look into it more closely when I am back.
+
+ return pc._retn ();
+ }
+
+
+ //function to retvieve a file via HTTP
+ //stores the file in the passed preallocated ACE_Message_Block
+ //returns 1 on success
+ // 0 on error
+
+ int RepositoryManagerDaemon_i::HTTP_Get (const char* URL, ACE_Message_Block &mb)
+ {
+ URL_Parser *parser = TheURL_Parser::instance ();
+ if (!parser->parseURL (const_cast<char*> (URL)))
+ return 0;
+
+ // Create a client
+ TAO_HTTP_Client client;
+
+ // Open the client
+ if (client.open (parser->filename_,
+ parser->hostname_,
+ parser->port_) == -1)
+ {
+ client.close ();
+ return 0;
+ }
+
+ // Read from it
+ if (client.read (&mb) <= 0)
+ {
+ client.close ();
+ return 0;
+ }
+
+ return 1;
+ }
+
+
+
+ //function to parse and return the PackageConfiguration from the already
+ //extracted descriptor files
+ Deployment::PackageConfiguration*
+ RepositoryManagerDaemon_i::retrieve_PC_from_descriptors (const char* pc_name,
+ const char* descriptor_dir)
+ {
+ //change the working dir
+ ACE_OS::chdir (descriptor_dir);
+
+ Deployment::PackageConfiguration_var pc = new Deployment::PackageConfiguration ();
+ //parse the PCD to make sure that there are no package errors
+ try
+ {
+ CIAO::Config_Handlers::Packaging::PCD_Handler::package_config (pc_name, *pc);
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "(%P|%t) [RM::retrieve_PC_from_descriptors] Error parsing the PCD\n"));
+
+ //change back the the old working dir
+ ACE_OS::chdir (this->cwd_);
+ throw Deployment::PackageError ();
+ }
+ //able to parse the PC. So lets install the package in the repo
+
+ //change back the the old working dir
+ ACE_OS::chdir (this->cwd_);
+
+ return pc._retn ();
+ }
+
+
+ //find out what the name of the PackageConfiguration file is
+ void RepositoryManagerDaemon_i::find_PC_name (char* package, ACE_CString& pcd_name)
+ {
+ pcd_name = ""; //empty the contents of the ACE_CString
+
+ //create a doubly link list
+ ACE_New_Allocator allocator;
+ ACE_Double_Linked_List<ZIP_File_Info> list (&allocator);
+
+ //get the list of files in the package and figure out the names of all necessary files
+ if (!(ZIP_Wrapper::file_list_info (package, list)))
+ return;
+
+ size_t skip_len = ACE_OS::strlen ("descriptors") + 1;
+
+ while (!list.is_empty ())
+ {
+ ZIP_File_Info* inf = list.delete_head ();
+
+ if (ACE_OS::strstr (inf->name_.c_str (), "descriptors"))
+ if (ACE_OS::strstr (inf->name_.c_str (), ".pcd"))
+ pcd_name = inf->name_.c_str () + skip_len;
+
+ //deallocate the head of the filename list
+ delete inf;
+ }
+ }
+
+
+ //We are using Xercesc in the Config_Handlers and unfortunately its API only
+ //takes a file in the local file system as an argument, thus need to
+ //write out the contents of the deployent plan to a file
+ //in the current directory. I use the thread id to guarrantee
+ //lack of race conditions if multithreading is enabled
+
+ int RepositoryManagerDaemon_i::extract_descriptor_files (char* package, ACE_CString& pcd_name)
+ {
+ //create a doubly link list
+ ACE_New_Allocator allocator;
+ ACE_Double_Linked_List<ZIP_File_Info> list (&allocator);
+
+ //get the list of files in the package and figure out the names of all necessary files
+ if (!(ZIP_Wrapper::file_list_info (package, list)))
+ return 0;
+
+ size_t skip_len = ACE_OS::strlen ("descriptors") + 1;
+
+ while (!list.is_empty ())
+ {
+ ZIP_File_Info* inf = list.delete_head ();
+ ACE_Message_Block* file = 0;
+ if (ACE_OS::strstr (inf->name_.c_str (), "descriptors"))
+ {
+ if (ACE_OS::strstr (inf->name_.c_str (), ".pcd"))
+ pcd_name = inf->name_.c_str () + skip_len;
+
+ //extract the descriptor from the package
+ ACE_NEW_RETURN (file, ACE_Message_Block (0,0), 0);
+ if (!ZIP_Wrapper::get_file(const_cast<char*> (package),
+ const_cast<char*> (inf->name_.c_str ()),
+ *file))
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM::extract_descriptor_files] Unable to retrieve file!\n"));
+ //release the message block chain
+ file->release ();
+ return 0;
+ }
+
+
+ //write the file to disk
+ if(!RM_Helper::write_to_disk (inf->name_.c_str () + skip_len, *file))
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM::extract_descriptor_files] Unable to write out descriptor to disk!\n"));
+ //release the message block chain
+ file->release ();
+ return 0;
+ }
+
+ //release the message block chain
+ file->release ();
+ }
+
+ //deallocate the head of the filename list
+ delete inf;
+ }
+
+ return 1;
+ }
+
+ int RepositoryManagerDaemon_i::remove_descriptor_files (char* package)
+ {
+ int return_code = 1;
+
+ //create a doubly link list
+ ACE_New_Allocator allocator;
+ ACE_Double_Linked_List<ZIP_File_Info> list (&allocator);
+
+ //get the list of files in the package and figure out the names of all necessary files
+ if (!(ZIP_Wrapper::file_list_info (package, list)))
+ return 0;
+
+ size_t skip_len = ACE_OS::strlen ("descriptors") + 1;
+
+ while (!list.is_empty ())
+ {
+ ZIP_File_Info* inf = list.delete_head ();
+ if (ACE_OS::strstr (inf->name_.c_str (), "descriptors"))
+ {
+ //delete disk
+ if(remove (inf->name_.c_str () + skip_len))
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "[RM::remove_descriptor_files] Unable to remove file from disk!\n"));
+ return_code = 0;
+ }
+ }
+ //deallocate the head of the filename list
+ delete inf;
+ }
+
+ return return_code;
+ }
+
+ int RepositoryManagerDaemon_i::remove_extracted_package (const char* path)
+ {
+ ACE_TCHAR full_path[MAXPATHLEN];
+ ACE_OS::getcwd (full_path, sizeof(full_path));
+
+ ACE_OS::chdir (path);
+
+ ACE_Dirent dir (path);
+
+ for (ACE_DIRENT *directory; (directory = dir.read ()) != 0;)
+ {
+ if (ACE::isdotdir (directory->d_name) == true)
+ continue;
+
+ ACE_stat stat_buf;
+ ACE_OS::lstat (directory->d_name, &stat_buf);
+
+ ACE_CString temp = path;
+ temp += "/";
+ temp += directory->d_name;
+ switch (stat_buf.st_mode & S_IFMT)
+ {
+ case S_IFREG: // Either a regular file or an executable.
+ remove (temp.c_str ());
+ break;
+
+ case S_IFDIR:
+ remove_extracted_package (temp.c_str ());
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ ACE_OS::chdir (full_path);
+
+ ACE_OS::rmdir (path);
+
+ return 0;
+ }
+
+ //function to extract the type of the component from
+ //the PackageConfiguration and update the interface map
+ //returns 1 on success
+ // 0 on error
+
+ int RepositoryManagerDaemon_i::add_type (Deployment::PackageConfiguration& pc,
+ const char* name)
+ {
+ if (pc.basePackage.length () > 0)
+ {
+ ::CORBA::StringSeq supportedTypes = pc.basePackage[0]
+ .implementation[0]
+ .referencedImplementation
+ .implements
+ .supportedType;
+
+ if (supportedTypes.length () != 0)
+ {
+ CORBA::ULong len = supportedTypes.length ();
+ for (CORBA::ULong i = 0; i < len; ++i)
+ {
+ this->types_.bind (ACE_CString (supportedTypes[i]), name);
+ }
+ }
+ }
+ else //ComponentPackageReference
+ {
+ //not implemented yet
+ return 0;
+ }
+
+ return 1;
+ }
+
+ //function to remove the interface type of the component
+ //being removed from the interface map
+ //returns 1 on success
+ // 0 on error
+
+ int RepositoryManagerDaemon_i::remove_type (Deployment::PackageConfiguration& pc,
+ const char* name)
+ {
+ if (pc.basePackage.length () > 0)
+ {
+ ::CORBA::StringSeq supportedTypes = pc.basePackage[0]
+ .implementation[0]
+ .referencedImplementation
+ .implements
+ .supportedType;
+
+ if (supportedTypes.length () != 0)
+ {
+ CORBA::ULong len = supportedTypes.length ();
+ for (CORBA::ULong i = 0; i < len; ++i)
+ {
+ if (this->types_.unbind (ACE_CString (supportedTypes[i]), ACE_CString (name)) != 0)
+ DANCE_DEBUG (6, (LM_DEBUG, "Could not find type %s with package name %s!\n",
+ ACE_CString (supportedTypes[i]).c_str (),
+ name));
+ }
+ }
+ }
+ else //ComponentPackageReference
+ {
+ //not implemented yet
+ return 0;
+ }
+
+ return 1;
+ }
+
+ //function to dump the state of the RepositoryManager
+ void RepositoryManagerDaemon_i::dump (void)
+ {
+#if defined (ACE_HAS_DUMP)
+
+ DANCE_DEBUG(LM_DEBUG, "NAMES:\n");
+ this->names_.dump ();
+ DANCE_DEBUG(LM_DEBUG, "UUIDs:\n");
+ this->uuids_.dump ();
+ DANCE_DEBUG (LM_DEBUG, "Component Interface Types:\n");
+ this->types_.dump ();
+
+#endif /* ACE_HAS_DUMP */
+ }
+
+ //function to save the package info of the RepositoryManager
+ void RepositoryManagerDaemon_i::save (void)
+ {
+ // Save the names, UUIDs, & types info to the configuration files.
+ ACE_Configuration_Heap cfg;
+ cfg.open ();
+ ACE_Configuration_Section_Key root = cfg.root_section ();
+
+ ACE_Configuration_Section_Key NameSection;
+ cfg.open_section (root, RM_RECORD_NAME_SECTION, 1, NameSection);
+ for (PCMap_Iterator iter = this->names_.begin ();
+ iter != this->names_.end ();
+ ++iter)
+ {
+ PCEntry& element = *iter;
+ cfg.set_string_value (NameSection, element.ext_id_.c_str (), element.int_id_.c_str ());
+ }
+
+ ACE_Configuration_Section_Key UUIDSection;
+ cfg.open_section (root, RM_RECORD_UUID_SECTION, 1, UUIDSection);
+ for (PCMap_Iterator iter = this->uuids_.begin ();
+ iter != this->uuids_.end ();
+ ++iter)
+ {
+ PCEntry& element = *iter;
+ cfg.set_string_value (UUIDSection, element.ext_id_.c_str (), element.int_id_.c_str ());
+ }
+
+ ACE_Registry_ImpExp exporter (cfg);
+ ACE_OS::chdir (install_path.c_str ());
+ exporter.export_config (RM_RECORD_FILE);
+ ACE_OS::chdir (this->cwd_);
+ }
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h
new file mode 100644
index 00000000000..51648fbe588
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h
@@ -0,0 +1,233 @@
+
+/* -*- C++ -*- */
+
+//======================================================================
+/**
+ * @file RepositoryManager_Impl.h
+ *
+ * $Id$
+ *
+ * Description:
+ * This file is the main implementation file for the RepositoryManager
+ * in CIAO. We have used a number of techniques in order to increase
+ * scalability of the RepoMan while still maintaining complience with
+ * the D&C spec
+ *
+ * @author Stoyan Paunov
+ * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//======================================================================
+
+#ifndef REPOSITORYMANAGERI_H_
+#define REPOSITORYMANAGERI_H_
+
+//-----------------------------NOTE---------------------------------
+//I need to disable all the code which has to do with interface
+//type information because we currently do not support assembly
+//interfaces which causes undesired behavior with respect to the
+//hash tables because the specificType field in assembly interfaces
+//is empty, so two unrelated intefaces appear to be related.
+
+#include "RepositoryManagerDaemonS.h"
+
+#include "ace/Hash_Map_Manager_T.h" //for the ACE_Hash_Map_Manager
+#include "ace/Hash_Multi_Map_Manager_T.h" //for the ACE_Hash_MultiMap_Manager
+#include "ace/Null_Mutex.h" //for ACE_Null_Mutex
+#include "ace/RW_Mutex.h" //for ACE_RW_Mutex
+#include "ace/OS_NS_string.h" //for ACE_CString
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace
+{
+ static const size_t TEMP_LEN = 1024;
+}
+
+namespace DAnCE
+{
+ class RepositoryManagerDaemon_i :
+ public virtual POA_CIAO::RepositoryManagerDaemon
+ {
+ public:
+ /// Constructor
+ RepositoryManagerDaemon_i (CORBA::ORB_ptr the_orb,
+ const ACE_TCHAR* server = ACE_TEXT("localhost:5432"),
+ const ACE_TCHAR* install_dir = ACE_TEXT("RepositoryManager"));
+
+ /// Destructor
+ virtual ~RepositoryManagerDaemon_i (void);
+
+ virtual void shutdown ();
+
+ virtual
+ void installPackage (const ACE_TCHAR * installationName,
+ const ACE_TCHAR * location,
+ ::CORBA::Boolean replace);
+
+ virtual
+ void createPackage (const ACE_TCHAR * installationName,
+ const ::Deployment::PackageConfiguration & package,
+ const ACE_TCHAR * baseLocation,
+ ::CORBA::Boolean replace);
+
+ virtual
+ ::Deployment::PackageConfiguration * findPackageByName (const ACE_TCHAR * name);
+
+ virtual
+ ::Deployment::PackageConfiguration * findPackageByUUID (const ACE_TCHAR * UUID);
+
+ virtual
+ ::CORBA::StringSeq * findNamesByType (const ACE_TCHAR * type);
+
+ virtual
+ ::CORBA::StringSeq * getAllNames ();
+
+ virtual
+ ::CORBA::StringSeq * getAllTypes ();
+
+ virtual
+ void deletePackage (const ACE_TCHAR * installationName);
+
+ protected:
+
+ /// Function to parse and return the PackageConfiguration from a specified
+ /// package
+ Deployment::PackageConfiguration* retrieve_PC_from_package (ACE_TCHAR* package);
+
+ /// Find out what the name of the PackageConfiguration file is
+ void find_PC_name (ACE_TCHAR* package, ACE_CString& pcd_name);
+
+ /// Function to parse and return the PackageConfiguration from the already
+ /// extracted descriptor files
+ Deployment::PackageConfiguration* retrieve_PC_from_descriptors (const ACE_TCHAR* pc_name,
+ const ACE_TCHAR* descriptor_dir);
+
+
+ /// Function to retrieve a file via HTTP
+ /// stores the file in the passed preallocated ACE_Message_Block
+ /// @retval 1 success
+ /// @retval 0 error
+ int HTTP_Get (const ACE_TCHAR* URL, ACE_Message_Block &mb);
+
+ /// Function to extract all necessary files for parsing the
+ /// PackageConfiguration descriptor and populating the idl struct.
+ /// @retval 1 success
+ /// @retval 0 error
+ ///
+ /// @note ACE_CString& pcd_name is an out parameter
+ int extract_descriptor_files (ACE_TCHAR* package,
+ ACE_CString& pcd_name);
+
+
+ /// Function to remove the files extracted for parsing the PackageConfiguration
+ /// descriptor and populating the idl struct. It reads the names of the files
+ /// from the package. They correspond to the names on disk.
+ /// @retval 1 on success
+ /// @retval 0 on error
+ int remove_descriptor_files (ACE_TCHAR* package);
+
+
+ /// Function to remove the files extracted from the package upon istallation
+ /// It reads the names of the files from the package. They correspond to the
+ /// names on disk. It deletes each file, then it deletes the directories that
+ /// contain them.
+ /// @note extraction location is path/*archive_name*/
+ /// @retval 1 on success
+ /// @retval 0 on error
+ int remove_extracted_package (const ACE_TCHAR* package_path);
+
+ /// Function to extract the type of the component from
+ /// the PackageConfiguration and update the interface map
+ /// @retval 1 on success
+ /// @retval 0 on error
+ int add_type (::Deployment::PackageConfiguration& pc,
+ const ACE_TCHAR* name);
+
+ /// Function to remove the interface type of the component
+ /// being removed from the interface map
+ /// @retval 1 on success
+ /// @retval 0 on error
+ int remove_type (::Deployment::PackageConfiguration& pc,
+ const ACE_TCHAR* name);
+
+ /// Function to dump the state of the RepositoryManager
+ void dump (void);
+
+ /// Function to save the package info of the RepositoryManager
+ void save (void);
+
+ private:
+ /// Cached information about the installed PackageConfigurations
+ /// A separate map for the installation names and their UUID's
+ /// Key: PackageConfiguration name or its UUID (CString type)
+ /// Value: The location of the local copy of the package
+
+ ///Based on the synchronization needed we can parametrize this with either
+ ///ACE_Null_Mutex or ACE_RW_Mutex
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ ACE_CString,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_RW_Mutex> PCMap;
+
+ typedef PCMap::ITERATOR PCMap_Iterator;
+ typedef PCMap::ENTRY PCEntry;
+
+
+ /// Cached information about the installed Component Interfaces
+ /// A map which associates Component supportedType with the
+ /// names of packages which implement this component type
+ /// Key: Component supportedType
+ /// Value: Unbounded set of the names of installed packages which
+ /// implement this component type
+
+ ///Based on the synchronization needed we can parametrize this with either
+ ///ACE_Null_Mutex or ACE_RW_Mutex
+
+ typedef ACE_Hash_Multi_Map_Manager<ACE_CString,
+ ACE_CString,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_RW_Mutex> CIMap;
+
+ typedef CIMap::ITERATOR CIMap_Iterator;
+ typedef CIMap::ENTRY CIEntry;
+ typedef CIEntry::VALUE_SET CISet;
+ typedef CIEntry::VALUE_SET_ITERATOR CISet_Iterator;
+
+ /// A hash map that associates the names of
+ /// PackageConfigurations with their location
+ PCMap names_;
+
+ /// a hash map that associates the UUIDs of
+ /// PackageConfigurations with their location
+ PCMap uuids_;
+
+ /// a hash map which associates Component Interface
+ /// UUIDs with their implementations
+ CIMap types_;
+
+ /// The ORB
+ CORBA::ORB_var the_orb_;
+
+ /// Will hold the current working directory
+ ACE_TCHAR cwd_ [TEMP_LEN];
+
+ /// Full path for the install directory
+ ACE_CString install_root_;
+
+ /// Location of the server
+ ACE_CString HTTP_server_;
+
+ /// Directory where the packages will be stored locally
+ ACE_CString install_path;
+};
+
+}
+
+#endif /* REPOSITORYMANAGER_H_ */
diff --git a/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp
new file mode 100644
index 00000000000..7f28328a406
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "Repository_Manager_Module.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("RepositoryManager - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("RepositoryManager - initializing module instance\n")));
+
+ DAnCE_RepositoryManager_Module rm;
+ CORBA::Object_var obj = rm.init (orb.in (), argc, argv);
+
+ if (!CORBA::is_nil (obj.in ()))
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("RepositoryManager - running ORB\n")));
+ orb->run ();
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("RepositoryManager - destroying ORB\n")));
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("RepositoryManager");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "RepositoryManager - Error: Unknown exception.\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
+
diff --git a/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp
new file mode 100644
index 00000000000..676d937df3d
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp
@@ -0,0 +1,509 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Repository_Manager_Module.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Task.h"
+#include "ace/Atomic_Op.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/DAnCE/DAnCE_PropertiesC.h"
+
+#ifdef DANCE_RM_USES_JAWS
+#include "JAWS/server/HTTP_Server.h"
+#endif
+
+#include "RepositoryManager_Impl.h"
+
+ACE_RCSID (DAnCE,
+ Repository_Manager_Module,
+ "$Id$")
+
+namespace DAnCE
+{
+ namespace Repository_Manager
+ {
+ bool
+ write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
+ {
+ FILE* ior_output_file_ =
+ ACE_OS::fopen (ior_file_name, ACE_TEXT("w"));
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ return true;
+ }
+ return false;
+ }
+
+ class Worker : public virtual ACE_Task_Base
+ {
+ public:
+ Worker (CORBA::ORB_ptr orb) :
+ orb_(CORBA::ORB::_duplicate (orb))
+ {
+ }
+
+ virtual int svc (void)
+ {
+ DANCE_TRACE ("DAnCE::Repository_Manager::Worker::svc");
+
+ size_t thread_id = ++this->thread_counter_;
+
+ try
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("Spawning thread %u for the ORB.\n"), thread_id));
+ this->orb_->run ();
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("ORB event loop for thread %u completed successfully.\n"), thread_id));
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("Caught CORBA exception from ORB event loop for thread %u: %C\n"),
+ thread_id, ex._info ().c_str ()));
+ return -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("Caught unknown C++ exception from ORB event loop for thread %u\n"),
+ thread_id));
+ return -1;
+ }
+
+ return 0;
+ }
+
+ private:
+ ACE_Atomic_Op<TAO_SYNCH_MUTEX, unsigned long> thread_counter_;
+ CORBA::ORB_var orb_;
+ };
+ }
+}
+
+DAnCE_RepositoryManager_Module::DAnCE_RepositoryManager_Module (void)
+{
+ DANCE_TRACE("DAnCE_RepositoryManager_Module::DAnCE_RepositoryManager_Module");
+}
+
+DAnCE_RepositoryManager_Module::~DAnCE_RepositoryManager_Module (void)
+{
+ DANCE_TRACE ("DAnCE_RepositoryManager_Module::~DAnCE_RepositoryManager_Module");
+}
+
+const char *
+DAnCE_RepositoryManager_Module::usage (void)
+{
+ DANCE_TRACE ("DAnCE_RepositoryManager_Module::usage");
+ return "Repository Manager Options:\n"
+ "\t-n|--name [name]\t Name to register in the naming service\n"
+ "\t-t|--threads [num]\t Number of threads to run.\n"
+ "\t-f|--file [name]\t Filename to output IOR.\n"
+ "\t-p|--package-dir [directory]\t Directory to store packages.\n"
+ "\t-s|--server-address [address]\t Address of the HTTP server associated with this RM.\n"
+ "\t-d|--domain-nc [NC]\t Default naming context for domain objects.\n"
+ "\t-h|help\t\t\t print this help message\n"
+#ifdef DANCE_RM_USES_JAWS
+ "\t--spawn-http\t\t Spawn a JAWS http server, controlled by following options:\n"
+ "\t--http-port [port]\t Spawn JAWS HTTP server with provided port, default is 5432\n"
+ "\t--http-threads [number]\t Spawn provided number of threads in HTTP server, default is 1\n"
+ "\t--http-threading [strategy]\t Use provided threading strategy. POOL (Default), PER_REQUEST, THROTTLE.\n"
+ "\t--http-io [stratety]\t Use provided I/O strategy. SYNCH (default), ASYNCH.\n"
+ "\t--http-caching [strategy]\t Use provided caching strategy. NO_CACHE (default), CACHE\n"
+#endif
+ ;
+
+}
+
+bool
+DAnCE_RepositoryManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
+{
+ DANCE_TRACE ("DAnCE_RepositoryManager_Module::parse_args");
+
+ ACE_Get_Opt get_opts (argc - 1,
+ argv + 1,
+ ACE_TEXT(":hd:t:f:p:n:"),
+ 0,
+ 0,
+ ACE_Get_Opt::RETURN_IN_ORDER,
+ 1);
+
+ get_opts.long_option (ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("domain-nc"), 'd', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("file"), 'f', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("threads"), 't', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("package-dir"), 'p', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("name"), 'n', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("server-address"), 's', ACE_Get_Opt::ARG_REQUIRED);
+#ifdef DANCE_RM_USES_JAWS
+ get_opts.long_option (ACE_TEXT("spawn-http"), ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("http-port"), ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("http-threads"), ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("http-threading"), ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("http-io"), ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("http-caching"), ACE_Get_Opt::ARG_REQUIRED);
+#endif /* DANCE_RM_USES_JAWS */
+
+ //get_opts.long_option ("help", '?');
+
+ int c;
+ while ( (c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'd':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Binding to provided Domain Naming Context: '%s'\n"),
+ get_opts.opt_arg ()));
+ this->options_.domain_nc_ = get_opts.opt_arg ();
+ break;
+
+ case 'f':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Output filename for IOR is %s\n"),
+ get_opts.opt_arg ()));
+ this->options_.ior_file_ = get_opts.opt_arg ();
+ break;
+
+ case 't':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Number of threads is %s\n"), get_opts.opt_arg ()));
+ this->options_.threads_ = (ACE_OS::atoi (get_opts.opt_arg ()));
+ break;
+
+ case 'p':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Package directory is %s\n"),
+ get_opts.opt_arg ()));
+ this->options_.package_dir_ = get_opts.opt_arg ();
+ break;
+
+ case 'n':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Name is %s\n"),
+ get_opts.opt_arg ()));
+ this->options_.name_ = get_opts.opt_arg ();
+ break;
+
+ case 's':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Server address is %s\n"),
+ get_opts.opt_arg ()));
+ this->options_.server_address_ = get_opts.opt_arg ();
+ break;
+
+ case 0:
+ if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("spawn-http")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Found option to spawn in-process HTTP server\n")));
+ this->options_.spawn_http_ = true;
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-port")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server port\n"),
+ get_opts.opt_arg ()));
+ this->options_.spawn_http_ = true;
+ this->options_.http_port_ = get_opts.opt_arg ();
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-threads")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP number of threads\n"),
+ get_opts.opt_arg ()));
+ this->options_.spawn_http_ = true;
+ this->options_.http_threads_ = get_opts.opt_arg ();
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-threading")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server threading model\n"),
+ get_opts.opt_arg ()));
+ this->options_.spawn_http_ = true;
+ this->options_.http_threading_ = get_opts.opt_arg ();
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-io")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server IO strategy\n"),
+ get_opts.opt_arg ()));
+ this->options_.spawn_http_ = true;
+ this->options_.http_io_ = get_opts.opt_arg ();
+ }
+ else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-caching")) == 0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server caching strategy\n"),
+ get_opts.opt_arg ()));
+ this->options_.spawn_http_ = true;
+ this->options_.http_caching_ = get_opts.opt_arg ();
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("ERROR: unknown long option %s\n"),
+ get_opts.long_option ()));
+ }
+
+ break;
+
+ case 'h':
+ case '?': // Display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ this->usage (),
+ argv [0], c),
+ false);
+ break;
+ }
+
+ }
+
+ if (this->options_.server_address_ == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Must provide server address using --server-address option.\n")));
+ return false;
+ }
+
+ return true;
+}
+
+CORBA::Object_ptr
+DAnCE_RepositoryManager_Module::init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_RepositoryManager_Module::init");
+
+ try
+ {
+ if (CORBA::is_nil(orb))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Attempted to create Repository Manager with a nil orb.\n")));
+ return CORBA::Object::_nil();
+ }
+ else
+ {
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ }
+
+ if (ACE_OS::strcmp(orb->id(), this->orb_->id()) != 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Resetting NM's orb.\n")));
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ this->domain_nc_ = CosNaming::NamingContext::_nil();
+ }
+
+ if (!this->parse_args (argc, argv))
+ {
+ return CORBA::Object::_nil ();
+ }
+
+ if (this->options_.spawn_http_)
+ this->spawn_http ();
+
+ this->create_poas ();
+
+ if (this->options_.domain_nc_)
+ {
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Resolving DomainNC.\n")));
+ CORBA::Object_var domain_obj = this->orb_->string_to_object (this->options_.domain_nc_);
+ if (!CORBA::is_nil (domain_obj.in ()))
+ {
+ this->domain_nc_ = CosNaming::NamingContext::_narrow (domain_obj.in());
+ if (CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR,DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ catch (const CORBA::Exception&)
+ {
+ DANCE_DEBUG (6, (LM_WARNING, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("DomainNC context not found!\n")));
+ }
+ }
+
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Initializing the IOR Table\n")));
+ // Initialize IOR table
+ CORBA::Object_var table_object = orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter = IORTable::Table::_narrow (table_object.in ());
+
+ if (CORBA::is_nil (adapter.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Unable to RIR the IORTable.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+
+ //Creating repository manager servant
+ DAnCE::RepositoryManagerDaemon_i * rm = new DAnCE::RepositoryManagerDaemon_i (orb,
+ this->options_.server_address_,
+ this->options_.package_dir_);
+ PortableServer::ServantBase_var safe_svt (rm);
+
+ ACE_CString repository_manager_oid;
+
+ if (this->options_.name_ == 0)
+ repository_manager_oid = "RepositoryManager";
+ else
+ {
+ repository_manager_oid = this->options_.name_;
+ repository_manager_oid += ".RepositoryManager";
+ }
+
+ // Registering servant in poa
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId (repository_manager_oid.c_str());
+ this->rm_poa_->activate_object_with_id (oid, rm);
+
+ // Getting repository manager ior
+ CORBA::Object_var nm_obj = this->rm_poa_->id_to_reference (oid.in ());
+ CORBA::String_var ior = orb->object_to_string (nm_obj.in ());
+
+ // Binding ior to IOR Table
+ adapter->bind (repository_manager_oid.c_str (), ior.in ());
+
+ // Binding repository manager to DomainNC
+ if (!CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ ACE_CString ns_name;
+ if (this->options_.name_ == 0)
+ ns_name = "RepositoryManager";
+ else ns_name = this->options_.name_;
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Registering NM in NC as \"%C\".\n"), ns_name.c_str ()));
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup (ns_name.c_str ());
+ name[0].kind = CORBA::string_dup ("RepositoryManager");
+ this->domain_nc_->rebind (name, nm_obj.in ());
+ }
+
+ // Writing ior to file
+ if (0 != this->options_.ior_file_)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Writing RM IOR %C to file %C.\n"), this->options_.ior_file_, ior.in ()));
+ if (!DAnCE::Repository_Manager::write_IOR (this->options_.ior_file_, ior.in ()))
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("Error: Unable to write IOR to file %C\n"),
+ this->options_.ior_file_));
+ }
+
+ // Activate POA manager
+ PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
+ mgr->activate ();
+
+ // Finishing Deployment part
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("DAnCE_RepositoryManager is running...\n")));
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::init - ")
+ ACE_TEXT("RepositoryManager IOR: %C\n"), ior.in ()));
+
+ return nm_obj._retn ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("DAnCE_RepositoryManager::main\t\n");
+ return CORBA::Object::_nil ();
+ }
+}
+
+void
+DAnCE_RepositoryManager_Module::create_poas (void)
+{
+ DANCE_TRACE("DAnCE_Repository_Manager_Module::create_poas");
+ // Get reference to Root POA.
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Resolving root POA\n")));
+ CORBA::Object_var obj = this->orb_->resolve_initial_references ("RootPOA");
+
+ this->root_poa_ = PortableServer::POA::_narrow (obj.in ());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Obtaining the POAManager\n")));
+ PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
+
+ TAO::Utils::PolicyList_Destroyer policies (2);
+ policies.length (2);
+
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Creating the \"Repository\" POA.\n")));
+
+ policies[0] = this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID);
+ policies[1] = this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT);
+ this->rm_poa_ = this->root_poa_->create_POA ("Repository",
+ mgr.in(),
+ policies);
+ }
+ catch (const PortableServer::POA::AdapterAlreadyExists &)
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Using existing \"Repository\" POA\n")));
+ this->rm_poa_ = this->root_poa_->find_POA ("Repository", 0);
+ }
+}
+
+void
+DAnCE_RepositoryManager_Module::spawn_http (void)
+{
+ DANCE_TRACE ("DAnCE_RepositoryManager_Module::spawn_http");
+
+ ACE_CString directive =
+#if (ACE_USES_CLASSIC_SVC_CONF == 0)
+ ACE_TEXT ("<dynamic id=\"HTTP_Server\" type=\"Service_Object\">")
+ ACE_TEXT (" <initializer init=\"_make_HTTP_Server\" path=\"JAWS\" params=\"");
+#else
+ ACE_TEXT ("dynamic HTTP_Server Service_Object *")
+ ACE_TEXT (" JAWS:_make_HTTP_Server() \"");
+#endif
+
+ directive += ACE_TEXT ("-p ");
+ directive += this->options_.http_port_;
+ directive += ACE_TEXT (" -n ");
+ directive += this->options_.http_threads_;
+ directive += ACE_TEXT (" -i ");
+ directive += this->options_.http_io_;
+ directive += ACE_TEXT (" -t ");
+ directive += this->options_.http_threading_;
+ directive += ACE_TEXT (" -c ");
+ directive += this->options_.http_caching_;
+ directive += ACE_TEXT (" -b 50 -f THR_NEW_LWP");
+ directive += ACE_TEXT ("\"");
+
+#if (ACE_USES_CLASSIC_SVC_CONF == 0)
+ directive += ACE_TEXT ("/>");
+ directive += ACE_TEXT ("</dynamic>");
+#endif
+
+ ACE_Service_Config::current ()->process_directive (directive.c_str ());
+}
+
diff --git a/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h
new file mode 100644
index 00000000000..2f284c2e8b3
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h
@@ -0,0 +1,107 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Repository_Manager_Module.h
+ *
+ * $Id$
+ *
+ * @brief To start RepositoryManager by starter
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NODE_MANAGER_MODULE_H
+#define NODE_MANAGER_MODULE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Service_Config.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Vector_T.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "DAnCE/Deployment_common.h"
+
+/**
+ * @class Repository_Manager_Module
+ *
+ * This class runs the node manager instance
+ */
+class DAnCE_RepositoryManager_Module
+{
+ public:
+ /// Constructor.
+ DAnCE_RepositoryManager_Module (void);
+
+ /// Destructor.
+ ~DAnCE_RepositoryManager_Module (void);
+
+ /// Overload the base class method to create a new instance
+ /// of a DAnCE_RepositoryManager_Module object.
+ CORBA::Object_ptr init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ private:
+ struct SOptions
+ {
+ const ACE_TCHAR * domain_nc_;
+ const ACE_TCHAR * ior_file_;
+ size_t threads_;
+ const ACE_TCHAR * package_dir_;
+ const ACE_TCHAR * name_;
+ const ACE_TCHAR * server_address_;
+
+ bool spawn_http_;
+ const ACE_TCHAR *http_port_;
+ const ACE_TCHAR *http_threads_;
+ const ACE_TCHAR *http_threading_;
+ const ACE_TCHAR *http_io_;
+ const ACE_TCHAR *http_caching_;
+
+ SOptions() :
+ domain_nc_ (0),
+ ior_file_ (0),
+ threads_ (1),
+ package_dir_ (ACE_TEXT("RepositoryManager_Packages")),
+ server_address_ (0),
+ spawn_http_ (false),
+ http_port_ (ACE_TEXT("5432")),
+ http_threads_ (ACE_TEXT("1")),
+ http_threading_ (ACE_TEXT("POOL")),
+ http_io_ (ACE_TEXT("SYNCH")),
+ http_caching_ (ACE_TEXT("NO_CACHE"))
+ {
+ }
+ };
+
+ const char * usage (void);
+
+ bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ void create_poas (void);
+
+ void spawn_http (void);
+
+ CORBA::ORB_var orb_;
+ CosNaming::NamingContext_var domain_nc_;
+
+ SOptions options_;
+
+ PortableServer::POA_var root_poa_;
+ PortableServer::POA_var rm_poa_;
+};
+
+#include /**/ "ace/post.h"
+
+#endif /* NODE_MANAGER_MODULE_H */
diff --git a/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp b/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp
new file mode 100644
index 00000000000..90d36abaf99
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp
@@ -0,0 +1,101 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/ARGV.h"
+#include "URL_Parser.h"
+#include "ace/ACE.h"
+
+#include "DAnCE/Logger/Log_Macros.h"
+
+bool
+URL_Parser::parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("rwu:h:p:f:d"));
+
+ bool success = true;
+ int c;
+
+ while ((c = get_opt ()) != -1)
+ switch (c)
+ {
+ case 'd':
+ this->debug_ = true;
+ break;
+ case 'u':
+ success = parseURL (get_opt.opt_arg ());
+ break;
+ // Usage fallthrough.
+ default:
+ success = false;
+ }
+
+ if (this->hostname_ == 0 || this->filename_ == 0)
+ {
+ success = false;
+ }
+
+ return success;
+}
+
+URL_Parser::URL_Parser (void)
+ : hostname_ (ACE::strnew (ACE_TEXT("127.0.0.1"))),
+ port_ (ACE_DEFAULT_HTTP_SERVER_PORT),
+ filename_ (0),
+ debug_ (false)
+{
+}
+
+bool URL_Parser::parseURL (ACE_TCHAR* url)
+{
+ ACE_TCHAR* ptr = 0;
+ bool success = true;
+ ptr = ACE_OS::strstr (url, ACE_TEXT("http://"));
+ if (ptr)
+ url += ACE_OS::strlen (ACE_TEXT("http://"));
+
+ if (url[0] == '/')
+ {
+ this->filename_ = ACE_OS::strdup (url);
+ }
+ else
+ {
+ ptr = ACE_OS::strstr (url, ":");
+ if (ptr)
+ this->port_ = ACE_OS::atoi (ptr + 1);
+ else
+ ptr = ACE_OS::strstr (url, "/");
+
+ if(!ptr)
+ success = false;
+ else
+ {
+ size_t host_len = ptr - url;
+ ACE::strdelete (this->hostname_);
+ ACE_NEW_RETURN (this->hostname_, char [host_len + 1], false);
+ ACE_OS::strncpy (this->hostname_, url, host_len);
+ this->hostname_ [host_len] = '\0';
+ ptr = ACE_OS::strstr (ptr, "/");
+ if (ptr)
+ {
+ this->filename_ = ACE_OS::strdup(ptr);
+ }
+ else
+ {
+ success = false;
+ }
+ }
+ }
+ return success;
+}
+
+
+void URL_Parser::Error (void)
+{
+ DANCE_DEBUG (6, (LM_DEBUG, "./http_client -u http://hostname:port/filename [-d]\n"));
+}
+
+URL_Parser::~URL_Parser()
+{
+ delete [] this->hostname_;
+ ACE_OS::free (this->filename_);
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.h b/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.h
new file mode 100644
index 00000000000..ed2cad8ad88
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.h
@@ -0,0 +1,63 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file URL_Parser.h
+ *
+ * $Id$
+ *
+ * Parses a URL into its logical chunks
+ *
+ * @author Stoyan Paunov
+ */
+//=============================================================================
+
+
+#ifndef URL_PARSER_H
+#define URL_PARSER_H
+
+#include "ace/Singleton.h" //for ACE_Singleton
+#include "ace/Null_Mutex.h" //for ACE_Null_Mutex
+
+// Forward declaration
+class URL_Parser;
+
+typedef ACE_Singleton <URL_Parser, ACE_Null_Mutex> TheURL_Parser;
+
+class URL_Parser
+{
+public:
+
+ friend class ACE_Singleton <URL_Parser, ACE_Null_Mutex>;
+
+ /// Parses commandline arguments
+ bool parse_args (int argc, ACE_TCHAR *argv[]);
+
+ /// Return false on failure
+ bool parseURL (ACE_TCHAR* url);
+
+ void Error (void);
+
+ /// Hostname to connect to
+ ACE_TCHAR *hostname_;
+
+ /// Port number to use
+ u_short port_;
+
+ /// Filename to upload/download
+ ACE_TCHAR *filename_;
+
+ /// Turns on verbosity
+ bool debug_;
+
+ /// destructor
+ ~URL_Parser (void);
+
+protected:
+ /// protected constructor, singleton
+ URL_Parser (void);
+};
+
+
+
+#endif /* URL_PARSER_H */
diff --git a/modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp b/modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp
new file mode 100644
index 00000000000..e1a2345cebf
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp
@@ -0,0 +1,378 @@
+
+//===============================================================================
+/**
+ * @file ZIP_Wrapper.cpp
+ *
+ * $Id$
+ *
+ * Purpose: implementing the ZIP_Wrapper class
+ *
+ * @author Stoyan Paunov, Vipul Singh
+ *
+ */
+//===============================================================================
+
+#include "ace/Containers_T.h" //for ACE_Double_Linked_List
+#include "ace/Message_Block.h" //for ACE_Message_Block
+#include "ace/OS_NS_fcntl.h" //for open
+#include "ace/OS_NS_unistd.h" //for close
+#include "ace/OS_NS_string.h" //for strncpy
+#include "ace/SString.h" //for ACE_CString
+#include "ace/OS_NS_sys_stat.h" //for stat
+#include "ace/OS_NS_sys_stat.h" //for filesize and mkdir
+#include "ace/OS_Memory.h" //for ACE_NEW* macros
+#include "DAnCE/Logger/Log_Macros.h"
+
+#include <string>
+#include "minizip/unzip.h"
+#define MAXFILENAME (256)
+#define CASESENSITIVITY (0)
+#define WRITEBUFFERSIZE (8192)
+
+#include "ZIP_Wrapper.h"
+
+//ZIP_File_Info constructor
+ZIP_File_Info::ZIP_File_Info (char* name, size_t size)
+ : name_ (name),
+ size_ (size),
+ next_ (0),
+ prev_ (0)
+{
+}
+
+//ZIP_File_Info default constructor
+ZIP_File_Info::ZIP_File_Info ()
+ : name_ (""),
+ size_ (0),
+ next_ (0),
+ prev_ (0)
+{
+}
+
+
+/// Gets a list of the files in the archive.
+int ZIP_Wrapper::file_list_info (char* zip_name,
+ ACE_Double_Linked_List<ZIP_File_Info> &list)
+{
+ unzFile uf=0;
+ char filename_try[MAXFILENAME+16] = "";
+ if (zip_name!=0)
+ {
+ ACE_OS::strncpy(filename_try, zip_name, MAXFILENAME-1);
+ /* strncpy doesnt append the trailing NULL, if the string is too long. */
+ filename_try[ MAXFILENAME ] = '\0';
+ /* open the zip file */
+ uf = unzOpen(zip_name);
+ /* if zipfile could not be opened, try appending .zip to name */
+ if (uf==0)
+ {
+ ACE_OS::strcat(filename_try, ".zip");
+ uf = unzOpen(filename_try);
+ }
+ }
+ /* If zipfile could not be opened still, return */
+ if (uf==0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("There is some problem in opening")
+ ACE_TEXT(" %s or %s.zip using unzOpen\n"), zip_name, zip_name));
+ return 1;
+ }
+ unz_global_info gi;
+ /* get information about all the files in zip file*/
+ int err = unzGetGlobalInfo(uf, &gi);
+ if (err!=UNZ_OK)
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("unzGetGlobalInfo failed while trying")
+ ACE_TEXT(" to get global information about zipfile\n"), err));
+ /* gi.number_entry corresponds to the number of directory entries
+ in the zip file */
+ for (uLong i=0;i<gi.number_entry;i++)
+ {
+ char filename_inzip[256];
+ unz_file_info file_info;
+ /* get information about the current file in zip file */
+ err = unzGetCurrentFileInfo(uf, &file_info, filename_inzip,
+ sizeof(filename_inzip), 0, 0, 0, 0);
+ if (err!=UNZ_OK)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("unzGetCurrentFileInfo failed")
+ ACE_TEXT(" while trying to get information")
+ ACE_TEXT(" about current file\n"), err));
+ break;
+ }
+ ZIP_File_Info* next = 0;
+ ACE_NEW_RETURN (next, ZIP_File_Info (filename_inzip,
+ sizeof(filename_inzip)), -1);
+ /* add information about current file to the list */
+ list.insert_tail (next);
+ if ((i+1)<gi.number_entry)
+ {
+ err = unzGoToNextFile(uf);
+ if (err!=UNZ_OK)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG,
+ ACE_TEXT(" unzGoToNextFile failed")
+ ACE_TEXT(" while trying to go to next file\n"),
+ err));
+ break;
+ }
+ }
+ }
+ unzCloseCurrentFile(uf);
+ return gi.number_entry;
+}
+
+
+//get file and store it into ACE message block.
+bool ZIP_Wrapper::get_file (char* archive_path, char* filename,
+ ACE_Message_Block &file)
+{
+ bool return_code = true;
+ unzFile uf=0;
+ uf = unzOpen(archive_path);
+ /* locate the desired file in the zip file and set it as current file*/
+ int j=unzLocateFile(uf, filename, 0);
+ if (j==UNZ_END_OF_LIST_OF_FILE)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("File not found in zip archive")));
+ return false;
+ }
+ else if (j==UNZ_OK)
+ {
+ int k=unzOpenCurrentFile(uf);
+ if (k!=UNZ_OK)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("Error in opening the current")
+ ACE_TEXT(" file using unzOpenCurrentFile")));
+ return false;
+ }
+ else
+ {
+ int num_read = 0;
+ ACE_Message_Block* head = &file;
+
+ //read the file into the ACE_Message_Block
+ do
+ {
+ if (head->space () == 0)
+ {
+ ACE_Message_Block* next = 0;
+ ACE_NEW_RETURN (next, ACE_Message_Block (BUFSIZ), false);
+ head->cont ();
+ head = head->cont ();
+ }
+ num_read = unzReadCurrentFile(archive_path, head->wr_ptr(),
+ head->space());
+ if (num_read > 0)
+ head->wr_ptr (num_read);
+ } while (num_read > 0);
+ if (num_read < 0)
+ return_code = false;
+ unzCloseCurrentFile(uf);
+ unzClose(uf);
+ return return_code;
+ }
+ }
+ return return_code;
+}
+
+
+/// uncompress the zip file
+/// The zip file will be uncompressed into a directory
+/// with the name of zip archive.
+/// the path is assumed to be an existing directory
+
+bool ZIP_Wrapper::uncompress (char* zip_archive, char* path, bool verbose)
+{
+ //open the zip archive
+ unzFile uf=0;
+ uf = unzOpen(zip_archive);
+ if (uf==0)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG,ACE_TEXT("unzOpen failed to open the")
+ ACE_TEXT(" zipfile\n")));
+ return false;
+ }
+ //get the name of the archive
+ ACE_CString arch_dir (path);
+ arch_dir += "/";
+ //get only the name of the archive; remove path info
+ char* n = ACE_OS::strstr (zip_archive, "/");
+ char* zip_name = 0;
+ while (n != 0)
+ {
+ zip_name = ++n;
+ n = ACE_OS::strstr (n, "/");
+ }
+ arch_dir += zip_name;
+ //NOTE: Assumes .zip or cpk extension
+ arch_dir = arch_dir.substring (0, arch_dir.length () - 4);
+ //create directory with the name of zip archive
+ ACE_OS::mkdir(arch_dir.c_str());
+ //if dir exists -1 is returned and ignored
+ unz_global_info gi;
+ int err = unzGetGlobalInfo(uf, &gi);
+ if (err!=UNZ_OK)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("unzGetGlobalInfo failed to get global")
+ ACE_TEXT(" information about zipfile\n"), err));
+ return false;
+ }
+ err =unzGoToFirstFile(uf);
+ if (err!=UNZ_OK)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG,ACE_TEXT("error %d with zipfile in"
+ ACE_TEXT(" unzGoToFirstFile\n")), err));
+ return false;
+ }
+ /* read each entry of zip file, create directory structure if it is
+ a non existing directory whereas if it is a file, write the file
+ at the proper path in the directory structure */
+ for (uLong i=0;i<gi.number_entry;i++)
+ {
+ char filename_inzip[256];
+ unz_file_info file_info;
+ err = unzGetCurrentFileInfo(uf, &file_info, filename_inzip,
+ sizeof(filename_inzip), 0, 0, 0, 0);
+ if (err!=UNZ_OK)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, ACE_TEXT("unzGetCurrentFileInfo failed")
+ ACE_TEXT(" while trying to get information")
+ ACE_TEXT(" about currentfile\n"), err));
+ break;
+ }
+ int direc = checkdir(filename_inzip);
+ /* If it is a directory, we create directory structure */
+ if (direc==1)
+ {
+ makethedir(filename_inzip, arch_dir);
+ }
+ /* If it is a file, we read its data and write the uncompressed
+ data to the file with proper path.*/
+ else if (direc==0)
+ {
+ handlethefile(filename_inzip, uf, file_info, verbose, arch_dir);
+ }
+ if ((i+1)<gi.number_entry)
+ {
+ err = unzGoToNextFile(uf);
+ if (err!=UNZ_OK)
+ {
+ DANCE_ERROR (1, (LM_ERROR,ACE_TEXT("unzGoToNextFile failed")
+ ACE_TEXT(" while trying to go to")
+ ACE_TEXT(" nextfile\n"), err));
+ break;
+ }
+ }
+ }
+ unzClose(uf);
+ return true;
+}
+
+
+
+///try to find if it is a directory OR file
+int ZIP_Wrapper::checkdir (char* filename_inzip)
+{
+ int direc = 0;
+ char* dircheck = ACE_OS::strstr (filename_inzip, "/");
+ /* We assume that a directory will have its entry terminating in a /
+ We also assume that the directory entries in the zip file use
+ forward slash for both unix and windows */
+ while (dircheck != 0)
+ {
+ int i = ACE_OS::strcmp(dircheck, "/");
+ if (i == 0)
+ {
+ direc = 1;
+ break;
+ }
+ ++dircheck;
+ dircheck = ACE_OS::strstr (dircheck, "/");
+ }
+ return direc;
+}
+
+/// Create directory structure if entry in zipfile is a directory
+int ZIP_Wrapper::makethedir (char* filename_inzip, ACE_CString arch_dir)
+{
+ // let's try to create the directory structure for the package
+ char dir_name [2048];
+ char* next = ACE_OS::strstr (filename_inzip, "/");
+ while (next != 0)
+ {
+ ACE_CString location (arch_dir);
+ ACE_OS::strncpy (dir_name, filename_inzip, next - filename_inzip
+ + 1);
+
+ dir_name[next - filename_inzip + 1] = '\0';
+ location += "/";
+ location += dir_name;
+ ACE_stat stat;
+ if (ACE_OS::stat (location.c_str (), &stat) == -1)
+ ACE_OS::mkdir (location.c_str ());
+ next++;
+ next = ACE_OS::strstr (next, "/");
+ }
+ return 0;
+}
+
+/// If entry in zipfile is a file, then read the file and write the
+/// uncompressed data at the proper filepath.
+int ZIP_Wrapper::handlethefile (char* filename_inzip, unzFile uf,
+ unz_file_info file_info, bool verbose,
+ ACE_CString arch_dir)
+{
+ int k = unzOpenCurrentFile(uf);
+ if (k!=UNZ_OK)
+ {
+ DANCE_ERROR (1, (LM_ERROR,ACE_TEXT("unzOpenCurrentFile failed in"
+ " opening the current file")));
+ return false;
+ }
+ else
+ {
+ size_t const file_size = file_info.uncompressed_size;
+ char* temp = 0;
+ ACE_NEW_RETURN (temp, char [file_size], false);
+ ACE_Auto_Basic_Array_Ptr<char> buffer (temp);
+ //read in the data
+ unzReadCurrentFile(uf, &(*buffer), file_size);
+ //close the zip handle
+ unzCloseCurrentFile(uf);
+ //create file name + path to open
+ std::string file_path (arch_dir.c_str ());
+ //NOTE: need the c-style char to stop at '\0'
+ file_path += "/";
+ file_path += filename_inzip;
+ //print out the file to be uncompressed
+ if (verbose)
+ {
+ ACE_OS::write(ACE_STDOUT, file_path.c_str (),
+ file_path.length () );
+ ACE_OS::write(ACE_STDOUT, "\n", 1);
+ }
+ // Open a file handle to the local filesystem
+ ACE_HANDLE handle = ACE_OS::open (file_path.c_str (),
+ O_CREAT | O_TRUNC | O_WRONLY);
+ if (handle == ACE_INVALID_HANDLE)
+ {
+ unzClose(uf);
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[uncompress] file creation error")),
+ 0);
+ }
+ //write the uncompressed data to the file
+ if (ACE_OS::write (handle, &(*buffer), file_size) == -1)
+ {
+ unzClose(uf);
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("[uncompress] file write error")),
+ 0);
+ }
+ // Close the file handle
+ ACE_OS::close (handle);
+ }
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.h b/modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.h
new file mode 100644
index 00000000000..1506277e4f7
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.h
@@ -0,0 +1,117 @@
+
+/* -*- C++ -*- */
+
+//=======================================================================
+/**
+ * @file ZIP_Wrapper.h
+ *
+ * $Id$
+ *
+ * Purpose: to provide a wrapper around minizip for easy handling of
+ * ZIP archives. This wrapper can be used as an auxiliary
+ * class that allows a program to become ZIP-aware
+ *
+ * @author Stoyan Paunov, Vipul Singh
+ *
+ *
+ */
+//=======================================================================
+
+#ifndef _ZIP_WRAPPER_H_
+#define _ZIP_WRAPPER_H_
+
+#include "ace/Containers_T.h" //for ACE_Double_Linked_List
+#include "ace/Message_Block.h" //for ACE_Message_Block
+#include "ace/SString.h" //for ACE_CString
+
+#include "ace/Synch.h"
+#include "ace/OS_NS_fcntl.h" //for open
+#include "ace/OS_NS_sys_stat.h" //for filesize and mkdir
+
+#include "minizip/unzip.h"
+
+
+/**
+ * @class ZIP_File_Info
+ *
+ * This class is used as a carrier of information
+ * about entities residing inside a ZIP archive
+ */
+class ZIP_File_Info
+{
+public:
+ ACE_CString name_;
+ size_t size_;
+ ZIP_File_Info* next_;
+ ZIP_File_Info* prev_;
+
+ ZIP_File_Info (char* name, size_t size);
+ ZIP_File_Info ();
+};
+
+/**
+ * @class ZIP_Wrappers
+ *
+ * This class is the actual workhorse that provides all of
+ * the necessary functionality
+ */
+class ZIP_Wrapper
+{
+public:
+
+ /// Get file and store it into an ACE_Message_Block. The function
+ /// averts subdirectory traversal problems.
+ /// NOTE: Be sure to release the message block even if the function returns
+ /// false becuase the return value might be due to unsuccessful allocation
+
+ ///archive_path is the zip archive with the path
+ ///filename is the name of the file to be looked for in the zip archive.
+ ///the file is stored in ACE message block.
+ static bool get_file (char* archive_path, char* filename,
+ ACE_Message_Block &file);
+
+ /// uncompress the zip file
+ /// The zip file will be uncompressed into a directory with the
+ ///name of zip archive.
+ /// The path is assumed to be an existing directory
+
+ ///zip_archive is the arcive to be uncompressed with full path.
+ ///path is used for creating a directory with the name of zip archive.
+ static bool uncompress (char* zip_archive, char* path = 0,
+ bool verbose = true);
+
+ /// Get a list of the files in the archive
+
+ ///zip_name is the name of zipfile with fullpath.
+ ///list stores information about each entry in zip file.
+ static int file_list_info (char* zip_name,
+ ACE_Double_Linked_List<ZIP_File_Info> &list);
+
+ ///Check if an entry of a zip file is a file or directory
+ ///We assume a directoryname terminates with a forward slash
+ ///Returns 1 for directory while 0 for file.
+
+ ///filename_inzip is an entry in a zipfile
+ static int checkdir (char* filename_inzip);
+
+ ///Create directory structure if entry in zipfile is a directory
+
+ ///filename_inzip is an entry in a zipfile
+ ///arch_dir stores the name of the directory to be created
+ static int makethedir (char* filename_inzip, ACE_CString arch_dir);
+
+ ///If entry in zipfile is a file, then read the file and write
+ /// the uncompressed data at the proper filepath.
+
+ ///filename_inzip is an entry in a zipfile
+ ///uf refers to the zip archive
+ ///file_info is used to get information about current file
+ ///verbose decides if the details are to be printed or not
+ ///arch_dir is the name of file with full path where it is to be
+ ///uncompressed
+ static int handlethefile (char* filename_inzip, unzFile uf,
+ unz_file_info file_info,
+ bool verbose, ACE_CString arch_dir);
+};
+
+#endif
diff --git a/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.cpp b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.cpp
new file mode 100644
index 00000000000..5e5ee249538
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.cpp
@@ -0,0 +1,241 @@
+// $Id$
+#include "repository_manager_admin.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "RepositoryManagerDaemonC.h"
+
+namespace DAnCE
+{
+ namespace RepositoryManager
+ {
+ Admin::Admin (Deployment::RepositoryManager_ptr rm)
+ : rm_ (Deployment::RepositoryManager::_duplicate (rm))
+ {
+ DANCE_TRACE ("Admin::Admin");
+ }
+
+
+ /// Install a package at a provided filesystem path.
+ bool
+ Admin::install_package (const ACE_TCHAR *uri,
+ const ACE_TCHAR *name,
+ bool replace)
+ {
+ DANCE_TRACE ("Admin::install_package");
+
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Admin::install_package - "
+ "Installing package with URI: %s, name: %s\n",
+ uri, name));
+ this->rm_->installPackage (ACE_TEXT_ALWAYS_CHAR (name),
+ ACE_TEXT_ALWAYS_CHAR (uri),
+ replace);
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Admin::install_package - "
+ "Package installed successfully\n"));
+ }
+ catch (Deployment::NameExists &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::install_package - "
+ "Package with name %s already installed.\n",
+ name));
+ return false;
+ }
+ catch (Deployment::PackageError &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::install_package - "
+ "Internal error while installing package with name %s: %C - %C\n",
+ name, ex.source.in (), ex.reason.in ()));
+ return false;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::install_package - "
+ "Unexpected CORBA Exception while installing package with name: %s. Reason: %C\n",
+ name,
+ ex._info ().c_str ()));
+ return false;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::install_package - "
+ "Unexpected C++ exception while installing package with name: %s\n",
+ name));
+ return false;
+ }
+
+ return true;
+ }
+
+ /// Create new package.
+ bool
+ Admin::create_package (const ACE_TCHAR * /* pc_path */,
+ const ACE_TCHAR * /** name*/,
+ const ACE_TCHAR * /*baselocation*/,
+ bool /*replace*/)
+ {
+ DANCE_TRACE ("Admin::create_package");
+
+ return false;
+ }
+
+ /// Uninstall a package with a provided UUID.
+ /// Fails if the NoSuchName exception was raised.
+ bool
+ Admin::uninstall_package (const ACE_TCHAR *uuid)
+ {
+ DANCE_TRACE ("Admin::uninstall_package");
+
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Admin::uninstall_package - "
+ "Attempting to uninstall package %s\n",
+ uuid));
+ this->rm_->deletePackage (ACE_TEXT_ALWAYS_CHAR (uuid));
+ DANCE_DEBUG (8, (LM_INFO, DLINFO "Admin::uninstall_package - "
+ "Successfully uninstalled package %s\n",
+ uuid));
+ }
+ catch (Deployment::NoSuchName &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::uninstall_package - "
+ "No package with the given UUID found: %s\n",
+ uuid));
+ return false;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::uninstall_package - "
+ "Unexpected CORBA Exception while uninstalling package with uuid: %s. Reason: %C\n",
+ uuid,
+ ex._info ().c_str ()));
+ return false;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::uninstall_package - "
+ "Unexpected C++ exception while installing package with uuid: %C\n",
+ uuid));
+ return false;
+ }
+
+ return true;
+ }
+
+ /// List all installed packages
+ ::CORBA::StringSeq *
+ Admin::list_packages (void)
+ {
+ DANCE_TRACE ("Admin::list_packages");
+
+ try
+ {
+ CORBA::StringSeq_var packages = this->rm_->getAllNames ();
+ return packages._retn ();
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::list_packages - "
+ "Unexpected CORBA Exception while listing packages: %C\n",
+ ex._info ().c_str ()));
+ return 0;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::list_package - "
+ "Unexpected C++ exception while listing packages\n"));
+ return 0;
+ }
+
+ return 0;
+ }
+
+ /// List all installed package types
+ ::CORBA::StringSeq *
+ Admin::list_types (void)
+ {
+ DANCE_TRACE ("Admin::list_types");
+
+ try
+ {
+ CORBA::StringSeq_var packages = this->rm_->getAllTypes ();
+ return packages._retn ();
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::list_types - "
+ "Unexpected CORBA Exception while listing package types: %C\n",
+ ex._info ().c_str ()));
+ return 0;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::list_types - "
+ "Unexpected C++ exception while listing package types\n"));
+ return 0;
+ }
+
+ return 0;
+ }
+
+ /// Find package names by type
+ ::CORBA::StringSeq *
+ Admin::find_by_type (const ACE_TCHAR *type)
+ {
+ DANCE_TRACE ("Admin::find_by_type");
+
+ if (type == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::find_by_type - "
+ "Nill type passed to find_by_type\n"));
+ return 0;
+ }
+
+ try
+ {
+ ::CORBA::StringSeq_var types = this->rm_->findNamesByType (ACE_TEXT_ALWAYS_CHAR (type));
+ types._retn ();
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::find_by_type - "
+ "Unexpected CORBA Exception while listing packages of type %C: %C\n",
+ type,
+ ex._info ().c_str ()));
+ return 0;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::find_by_type - "
+ "Unexpected C++ exception while listing packages by type %C\n",
+ type));
+ return 0;
+ }
+
+ return 0;
+ }
+
+ /// Attempt to shutdown the server.
+ bool
+ Admin::shutdown (void)
+ {
+ DANCE_TRACE ("Admin::shutdown");
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Admin::shutdown - "
+ "Attempting to shut down Repository Manager\n"));
+ CIAO::RepositoryManagerDaemon_var rmd =
+ CIAO::RepositoryManagerDaemon::_narrow (this->rm_.in ());
+ DANCE_DEBUG (8, (LM_INFO, DLINFO "Admin::shutdown - "
+ "Repository Manager shut down.\n"));
+ if (CORBA::is_nil (rmd.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Admin::shutdown - "
+ "Unable to narrow provided RM reference to a CIAO::RepositoryManagerDaemon\n"));
+ return false;
+ }
+
+ rmd->shutdown ();
+
+ return true;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.h b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.h
new file mode 100644
index 00000000000..20f068a58f3
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.h
@@ -0,0 +1,65 @@
+
+// $Id$
+
+/**
+ * @file repository_manager_admin.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>?
+ *
+ * Class which implements most repository admin functions.
+ */
+
+#ifndef REPOSITORY_MANAGER_ADMIN_H_
+#define REPOSITORY_MANAGER_ADMIN_H_
+
+#include /**/ "ace/pre.h"
+#include "Deployment/Deployment_RepositoryManagerC.h"
+
+namespace DAnCE
+{
+ namespace RepositoryManager
+ {
+ /**
+ * @class Admin
+ * @brief Implements administrative functions for the Repository Manager.
+ */
+ class Admin
+ {
+ public:
+ Admin (Deployment::RepositoryManager_ptr rm);
+
+ /// Install a package at a provided filesystem path.
+ bool install_package (const ACE_TCHAR *uri,
+ const ACE_TCHAR *name,
+ bool replace);
+
+ /// Create new package.
+ bool create_package (const ACE_TCHAR *pc_path,
+ const ACE_TCHAR *name,
+ const ACE_TCHAR *baselocation,
+ bool replace);
+
+ /// Uninstall a package with a provided UUID.
+ /// Fails if the NoSuchName exception was raised.
+ bool uninstall_package (const ACE_TCHAR *uuid);
+
+ /// List all installed packages
+ ::CORBA::StringSeq * list_packages (void);
+
+ /// List all installed package types
+ ::CORBA::StringSeq * list_types (void);
+
+ /// Find package names by type
+ ::CORBA::StringSeq * find_by_type (const ACE_TCHAR *type);
+
+ /// Attempt to shutdown the server.
+ bool shutdown (void);
+
+ private:
+ Deployment::RepositoryManager_var rm_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* REPOSITORY_MANAGER_ADMIN_H_ */
diff --git a/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
new file mode 100644
index 00000000000..adea0525518
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
@@ -0,0 +1,454 @@
+// $Id$
+
+/**
+ * @file repository_manager_admin_exec.cpp
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Simple administration program for the Repository Manager.
+ */
+
+#include "ace/Auto_Ptr.h"
+#include "ace/Get_Opt.h"
+#include "ace/Unbounded_Set.h"
+#include "ace/String_Base.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "Deployment/Deployment_RepositoryManagerC.h"
+
+#include "repository_manager_admin.h"
+
+struct Options
+{
+ Options (void)
+ : rm_ior_ (""),
+ domain_nc_ (""),
+ list_ (false),
+ shutdown_ (false)
+ {
+ }
+
+ struct Installation
+ {
+ Installation (void)
+ {
+ }
+
+ bool init (const ACE_TCHAR *inst)
+ {
+ ACE_CString tmp (inst);
+
+ size_t begin = 0;
+ size_t pos = tmp.find (',', begin);
+
+ if (pos != ACE_CString::npos)
+ path_ = tmp.substring (begin, pos - begin);
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Installation::init - "
+ "Installation directive missing name and replace parameters, "
+ "must have form path,name,replace\n"));
+ return false;
+ }
+
+
+ begin = pos + 1;
+ pos = tmp.find (',', begin);
+
+ if (pos != ACE_CString::npos)
+ name_ = tmp.substring (begin, pos - begin);
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Installation::init - "
+ "Installation directive mssing replace parameter, "
+ "must have form path,name,replace\n"));
+ return false;
+ }
+
+ begin = pos + 1;
+
+ if (tmp[begin] == '0') replace_ = false;
+ else if (tmp[begin] == '1') replace_ = true;
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Installation::init - "
+ "Replace directive muse be 1 or 0.\n"));
+ return false;
+ }
+
+ return true;
+ }
+
+ bool operator== (const Installation &rhs) const
+ {
+ return (replace_ == rhs.replace_) &&
+ (path_ == rhs.path_) &&
+ (name_ == rhs.name_);
+ }
+
+ ACE_CString path_, name_;
+ bool replace_;
+ };
+
+ struct Creation
+ {
+ Creation (void)
+ {
+ }
+
+ bool init (const ACE_TCHAR *inst)
+ {
+ ACE_CString tmp (inst);
+
+ size_t begin = 0;
+ size_t pos = tmp.find (',', begin);
+
+ if (pos != ACE_CString::npos)
+ path_ = tmp.substring (begin, pos - begin);
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Creation::init - "
+ "Creation directive missing name, base location, and replace parameters, "
+ "must have form path,name,base,replace\n"));
+ return false;
+ }
+
+
+ begin = pos + 1;
+ pos = tmp.find (',', begin);
+
+ if (pos != ACE_CString::npos)
+ name_ = tmp.substring (begin, pos - begin);
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Creation::init - "
+ "Creation directive mssing base location and replace parameter, "
+ "must have form path,name,base,replace\n"));
+ return false;
+ }
+
+ begin = pos + 1;
+ pos = tmp.find (',', begin);
+
+ if (pos != ACE_CString::npos)
+ base_location_ = tmp.substring (begin, pos - begin);
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Creation::init - "
+ "Creation directive mssing replace parameter, "
+ "must have form path,name,base,replace\n"));
+ return false;
+ }
+
+ begin = pos + 1;
+
+ if (tmp[begin] == '0') replace_ = false;
+ else if (tmp[begin] == '1') replace_ = true;
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::Creation::init - "
+ "Replace directive muse be 1 or 0.\n"));
+ return false;
+ }
+
+ return true;
+ }
+
+ bool operator== (const Creation &rhs) const
+ {
+ return (replace_ == rhs.replace_) &&
+ (path_ == rhs.path_) &&
+ (name_ == rhs.name_);
+ }
+
+ ACE_CString path_, name_, base_location_;
+ bool replace_;
+ };
+
+ const ACE_TCHAR *rm_ior_;
+ const ACE_TCHAR *domain_nc_;
+ ACE_Unbounded_Set< Installation > install_;
+ ACE_Unbounded_Set< Creation > create_;
+ ACE_Unbounded_Set< ACE_CString > uninstall_;
+ bool list_;
+ bool shutdown_;
+
+ void usage (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "usage:\n"
+ "\t-h,--help\t\t\tThis message.\n"
+ "\t-r,--rm-ior <ior>\t\tIOR where the RM instance may be found\n"
+ "\t-i,--install <path>,<name>,<1|0>\tInstall package found at <path> into the RM, with <name>,\n"
+ "\t\t\t<1> replacing or <0> not replacing an existing package. *\n"
+ "\t-c,--create <path>,<name>,<base location>,<1|0>\tInstall package found at <path> into the RM, with <name>,\n"
+ "\t\t\t<base location>, <1> replacing or <0> not replacing an existing package. *\n"
+ "\t-u,--uninstall <uuid>\t\tUninstall package identified by UUID. *\n"
+ "\t-l,--list\t\t\tList all packages installed in the RM\n"
+ "\t-s,--shutdown\t\t\tShutdown the RM.\n"
+ "\t-d,--domain-nc <ior>\t\tProvide a reference to the domain naming context\n"
+
+ "\n\n\tArguments with a * may be specified multiple times.\n"));
+ }
+
+
+ int parse_args (int argc, ACE_TCHAR *argv[])
+ {
+ ACE_Get_Opt get_opt (argc, argv,
+ ACE_TEXT ("hr:i:c:u:lsd:"),
+ 0, 0,
+ ACE_Get_Opt::RETURN_IN_ORDER,
+ 1);
+
+ get_opt.long_option (ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+ get_opt.long_option (ACE_TEXT("rm-ior"), 'r', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option (ACE_TEXT("install"), 'i', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option (ACE_TEXT("create"), 'c', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option (ACE_TEXT("uninstall"), 'u', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option (ACE_TEXT("list"), 'l', ACE_Get_Opt::NO_ARG);
+ get_opt.long_option (ACE_TEXT("shutdown"), 's', ACE_Get_Opt::NO_ARG);
+ get_opt.long_option (ACE_TEXT("domain-nc"), 'd', ACE_Get_Opt::ARG_REQUIRED);
+
+ int c;
+ Installation inst;
+ Creation create;
+
+ while ((c = get_opt ()) != -1)
+ {
+ switch (c)
+ {
+ case 'h':
+ this->usage ();
+ return 1;
+ break;
+
+ case 'r':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Using provided RM IOR: %C\n",
+ get_opt.opt_arg ()));
+ rm_ior_ = get_opt.opt_arg ();
+ break;
+
+ case 'i':
+ if (!inst.init (get_opt.opt_arg ()))
+ {
+ this->usage ();
+ return -1;
+ }
+
+ if (inst.replace_)
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Replacing installed package from path %C with name %C.\n", inst.path_.c_str (),
+ inst.name_.c_str ()));
+ else
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Installing package from path %C with name %C.\n", inst.path_.c_str (),
+ inst.name_.c_str ()));
+
+ this->install_.insert (inst);
+ break;
+
+ case 'c':
+ if (!create.init (get_opt.opt_arg ()))
+ {
+ this->usage ();
+ return -1;
+ }
+
+ if (create.replace_)
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Replacing installed package from path %C with name %C and base location %C.\n",
+ create.path_.c_str (),
+ create.name_.c_str (),
+ create.base_location_.c_str ()));
+ else
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Installing new package from path %C with name %C and base location %C.\n",
+ create.path_.c_str (),
+ create.name_.c_str (),
+ create.base_location_.c_str ()));
+
+ this->create_.insert (create);
+ break;
+
+ case 'u':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Removing package with UUID %C\n", get_opt.opt_arg ()));
+ this->uninstall_.insert (get_opt.opt_arg ());
+ break;
+
+ case 'l':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Listing all packages.\n"));
+ this->list_ = true;
+ break;
+
+ case 's':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Shutting down the RM instance.\n"));
+ this->shutdown_ = true;
+ break;
+
+ case 'd':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Options::parse_args - "
+ "Using provided Domain NC: %C\n",
+ get_opt.opt_arg ()));
+ domain_nc_ = get_opt.opt_arg ();
+
+ case 0:
+ if (ACE_OS::strcmp (get_opt.long_option (), ACE_TEXT ("domain-nc")) == 0)
+ {
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Options::parse_args - "
+ "Unknown long option: %C\n",
+ get_opt.long_option ()));
+ this->usage ();
+ return -1;
+ }
+ }
+ }
+ return 0;
+ }
+};
+
+int ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ DANCE_DISABLE_TRACE ();
+
+ auto_ptr<DAnCE::Logger_Service> logger;
+
+ int retval (0);
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ "Module_main.h - initializing ORB\n"));
+
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ Options options;
+ int const error = options.parse_args (argc, argv);
+ if (error == -1)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "Failed to parse command line arguments.\n"));
+ }
+ else if (error == 1)
+ { //help was issued -> quit
+ return 0;
+ }
+
+ if (options.rm_ior_ == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "No RepositoryManager IOR provided\n"));
+ return -1;
+ }
+
+ // Resolve the RepositoryManager reference
+ CORBA::Object_var obj = orb->string_to_object (options.rm_ior_);
+
+ Deployment::RepositoryManager_var rm =
+ Deployment::RepositoryManager::_narrow (obj);
+
+ if (CORBA::is_nil (obj))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "Provided IOR was invalid or could not be narrowed: %s\n",
+ options.rm_ior_));
+ return -1;
+ }
+
+ DAnCE::RepositoryManager::Admin admin (rm.in ());
+
+ ACE_Unbounded_Set_Iterator<Options::Installation> inst_it =
+ options.install_.begin ();
+ Options::Installation *inst (0);
+
+ while (inst_it.next (inst) == 1)
+ {
+ if (!admin.install_package (inst->path_.c_str (),
+ inst->name_.c_str (),
+ inst->replace_))
+ retval = -1;
+ inst_it.advance ();
+ }
+
+ ACE_Unbounded_Set_Iterator<Options::Creation> creat_it (options.create_);
+ Options::Creation *creat (0);
+
+ while (creat_it.next (creat) == 1)
+ {
+ if (!admin.create_package (creat->path_.c_str (),
+ creat->name_.c_str (),
+ creat->base_location_.c_str (),
+ creat->replace_))
+ retval = -1;
+ creat_it.advance ();
+ }
+
+ ACE_Unbounded_Set_Iterator<ACE_CString> uninst_it (options.uninstall_);
+ ACE_CString *uninst = 0;
+
+ while (uninst_it.next (uninst) == 1)
+ {
+ if (!admin.uninstall_package (uninst->c_str ()))
+ retval = -1;
+ uninst_it.advance ();
+ }
+
+ if (options.list_)
+ {
+ ::CORBA::StringSeq * packages = admin.list_packages ();
+ if (packages == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "No packages returned from list_packages\n"));
+ retval = -1;
+ }
+
+ DANCE_DEBUG (6, (LM_EMERGENCY, "Listing %u packages installed on server:\n"));
+
+ for (CORBA::ULong i = 0; i < packages->length (); ++i)
+ {
+ DANCE_DEBUG (6, (LM_EMERGENCY, "\t%s\n",
+ (*packages)[i].in ()));
+ }
+
+ delete packages;
+ }
+
+ if (options.shutdown_)
+ {
+ DANCE_DEBUG (6, (LM_EMERGENCY, "Shutting down the Repository Manager\n"));
+ if (!admin.shutdown ())
+ retval = -1;
+ }
+
+ orb->destroy ();
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "Caught unexpected CORBA Exception: %s\n",
+ ex._info ().c_str ()));
+ return -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "Caught unexpected C++ exception.\n"));
+ return -1;
+ }
+
+ return 0;
+}
+
diff --git a/modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
new file mode 100644
index 00000000000..8f0583dc3f2
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
@@ -0,0 +1,644 @@
+// $Id$
+#include "DomainDataManager.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+
+#include "Config_Handlers/DD_Handler.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+#ifdef GEN_OSTREAM_OPS
+#include <iostream>
+#include <sstream>
+#endif /* GEN_OSTREAM_OPS */
+
+void
+DAnCE::DomainDataManager::init (CORBA::ORB_ptr orb,
+ ::Deployment::TargetManager_ptr target,
+ const ACE_TCHAR *domain_name)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::init");
+
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ this->target_mgr_ = ::Deployment::TargetManager::_duplicate(target);
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "DAnCE::DomainDataManager::init - "
+ "Parsing initial domain from file %s\n",
+ domain_name));
+
+ CIAO::Config_Handlers::DD_Handler dd (domain_name);
+ ::Deployment::Domain* dmn = dd.domain_idl ();
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE::DomainDataManager::init - "
+ "Initial domain successfully parsed\n"));
+#ifdef GEN_OSTREAM_OPS
+ std::ostringstream _stream;
+ _stream << *dmn << std::endl;
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE::DomainDataManager::init - "
+ "Contents of Domain: %C\n",
+ _stream.str ().c_str ()));
+#endif
+
+ current_domain_ = *dmn;
+ initial_domain_ = current_domain_;
+
+ // initialize the provisioning domain
+ provisioned_data_ = initial_domain_;
+
+ update_node_status ();
+
+ call_all_node_managers ();
+}
+
+int DAnCE::DomainDataManager::update_domain (const ::CORBA::StringSeq &,
+ const ::Deployment::Domain & domainSubset,
+ ::Deployment::DomainUpdateKind update_kind)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::update_domain");
+
+ // Update the subset of the domain which the above
+ // parameter corresponds to
+
+ // Check the type of update ..
+ switch (update_kind)
+ {
+ case ::Deployment::UpdateAll:
+ case ::Deployment::UpdateDynamic:
+ break;
+ case ::Deployment::Add:
+ add_to_domain (domainSubset);
+ break;
+ case ::Deployment::Delete:
+ delete_from_domain (domainSubset);
+ break;
+ default:
+ break;
+ }
+
+ CORBA::ULong const size = current_domain_.node.length ();
+
+ CORBA::ULong i;
+ for (i=0;i < size;i++)
+ {
+ if (!ACE_OS::strcmp (domainSubset.node[0].name ,
+ current_domain_.node[i].name))
+ {
+ // found a match
+ // for now overwrite the entire Node info ...
+ // but later , this has to be changed to overwrite
+ // only the specific part ...
+ current_domain_.node[i] = domainSubset.node[0];
+ break; // finished job ...break
+ }
+ }
+
+ if (i == size)
+ {
+ // thus the node is new .. add it to current_domain_
+ // later change it ...
+ current_domain_.node.length (size+1);
+ current_domain_.node[size]=domainSubset.node[0];
+ }
+ return 0;
+}
+
+::Deployment::Domain* DAnCE::DomainDataManager::get_current_domain ()
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::get_current_domain");
+
+ return new ::Deployment::Domain (provisioned_data_);
+}
+
+::Deployment::Domain* DAnCE::DomainDataManager::get_initial_domain ()
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::get_initial_domain");
+
+ return new ::Deployment::Domain (initial_domain_);
+}
+
+int DAnCE::DomainDataManager::readin_domain_data ()
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::readin_domain_data");
+
+ // here read in Domain data ...
+ //
+ return 0;
+}
+
+int DAnCE::DomainDataManager::call_all_node_managers ()
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::call_all_node_managers");
+
+/* if ( this->deployment_config_.init ("NodeDetails.dat") == -1 )
+ {
+ DANCE_ERROR (1, (LM_ERROR,
+ "TargetM (%P|%t) DomainDataManager.cpp -"
+ "DAnCE::DomainDataManager::call_all_node_managers -"
+ "ERROR while trying to initialize after reading "
+ "node details DAT file\n"));
+ return 0;
+ }
+
+ CORBA::ULong const length = initial_domain_.node.length ();
+
+ for (CORBA::ULong i=0;i < length;i++)
+ {
+
+ ::Deployment::NodeManager_var node_manager;
+
+ try
+ {
+ node_manager =
+ deployment_config_.get_node_manager
+ (initial_domain_.node[i].name.in ());
+ }
+ catch (CORBA::Exception&)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "DANCE::TM (%P|%t) DomainDataManager.cpp: "
+ "Error trying to contact NodeManager %s\n",
+ initial_domain_.node[i].name.in ()));
+ continue;
+ }
+
+
+ if (!CORBA::is_nil (node_manager.in ()))
+ {
+ Deployment::Logger_ptr log =
+ Deployment::Logger::_nil ();
+ ::Deployment::Domain sub_domain;
+ sub_domain.UUID = CORBA::string_dup("Node-Level-domain");
+ sub_domain.label = CORBA::string_dup("Node-level-domain");
+ sub_domain.sharedResource.length(0);
+ sub_domain.interconnect.length(0);
+ sub_domain.bridge.length(0);
+ sub_domain.infoProperty.length(0);
+ sub_domain.node.length (1);
+ sub_domain.node[0] = initial_domain_.node[i];
+ try
+ {
+ node_manager->joinDomain (sub_domain,
+ target_mgr_.in (),
+ log);
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR (1, (LM_ERROR , "TM::Error in calling Join Domain==\n"));
+ ex._tao_print_exception (
+ "Exception caught in ""DomainDataManager::joinDomain");
+ }
+ }
+ }
+*/
+ return 0;
+
+}
+
+
+::Deployment::ResourceCommitmentManager_ptr DAnCE::DomainDataManager
+::commitResources (const ::Deployment::ResourceAllocations &)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::commitResources");
+
+/*
+ // commit the resources
+ // parse into the plan and commit resources ...
+
+ // set the action value
+ current_action_ = commit;
+
+ // temporary created to guard against exceptions
+ ::Deployment::Domain temp_provisioned_data =
+ provisioned_data_;
+
+ for (CORBA::ULong i = 0;i < plan.instance.length ();i++)
+ {
+ for (CORBA::ULong j = 0;j < temp_provisioned_data.node.length ();j++)
+ {
+ if (!ACE_OS::strcmp (plan.instance[i].node.in () ,
+ temp_provisioned_data.node[j].name.in ()))
+ {
+ try {
+ match_requirement_resource (
+ plan.instance[i].deployedResource,
+ temp_provisioned_data.node[j].resource);
+ }
+ catch (::Deployment::ResourceCommitmentFailure& ex)
+ {
+ // catch the exception and add parameters
+ throw ex;
+ }
+ }
+ }
+ }
+
+ // here commit the commitresources
+ provisioned_data_ = temp_provisioned_data;
+ */
+ return 0;
+}
+
+
+void DAnCE::DomainDataManager::
+releaseResources (const ::Deployment::ResourceCommitmentManager_ptr)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::releaseResources");
+
+ // release the resources
+/*
+
+ // set the action value
+ current_action_ = release;
+
+ for (CORBA::ULong i = 0;i < plan.instance.length ();i++)
+ {
+ for (CORBA::ULong j = 0;j < provisioned_data_.node.length ();j++)
+ {
+ if (!ACE_OS::strcmp (plan.instance[i].node.in () ,
+ provisioned_data_.node[j].name.in ()))
+ {
+ match_requirement_resource (
+ plan.instance[i].deployedResource,
+ provisioned_data_.node[j].resource);
+
+ }
+ }
+ }
+*/
+}
+
+
+void DAnCE::DomainDataManager::match_requirement_resource (
+ ::Deployment::InstanceResourceDeploymentDescriptions deployed,
+ ::Deployment::Resources & available)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::match_requirement_resource");
+
+ // here match the deployed to the available
+
+ for (CORBA::ULong i = 0;i < deployed.length ();i++)
+ {
+ // for each deployed resource ....search the corresponding
+ // available resource
+ for (CORBA::ULong j = 0;j < available.length ();j++)
+ {
+ if (!ACE_OS::strcmp (deployed[i].requirementName, available[j].name))
+ {
+ // search for the resourcename in the resourceType
+ for (CORBA::ULong k = 0;k < available[j].resourceType.length ();k++)
+ {
+ if (!ACE_OS::strcmp (deployed[i].resourceName,
+ available[j].resourceType[k]))
+ {
+ try {
+ match_properties (deployed[i].property,
+ available[j].property);
+ }
+ catch (::Deployment::ResourceCommitmentFailure& ex)
+ {
+ // catch the exception and add parameters
+ throw ex;
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
+void DAnCE::DomainDataManager::match_properties (
+ ::Deployment::Properties deployed,
+ ::Deployment::SatisfierProperties & available)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::match_properties");
+
+ bool property_found;
+
+ for (CORBA::ULong i = 0;i < deployed.length ();i++)
+ {
+ property_found = false;
+
+ for (CORBA::ULong j = 0;j < available.length ();j++)
+ {
+ if (!ACE_OS::strcmp (deployed[i].name , available[j].name))
+ {
+ // check kind here ....and then subtract ....
+ // accordingly , ..this is complex ... better to write
+ // some specialised algo
+ // for now assuming Capacity ....
+ // and tk_double ....
+
+ commit_release_resource (deployed[i] , available[j]);
+ property_found = true;
+ }
+ } // internal for ....
+
+ // check if property was found or not
+ if (property_found == false)
+ {
+ // throw an error since property was not found in the Resource
+ ::Deployment::ResourceCommitmentFailure failure;
+
+ failure.reason = CORBA::string_dup ("Property Not Found\n");
+ failure.propertyName = CORBA::string_dup (deployed[i].name);
+ failure.propertyValue.length (0);
+
+ throw failure;
+ }
+ } // outside for ...
+}
+
+void DAnCE::DomainDataManager::commit_release_resource (
+ ::Deployment::Property & deployed,
+ ::Deployment::SatisfierProperty & available)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::commit_release_resource");
+
+ if (current_action_ == commit)
+ {
+
+ CORBA::Long required_d;
+
+ if ((deployed.value >>= required_d) == false)
+ DANCE_ERROR (1, (LM_ERROR, "Failed to extract required amount\n"));
+
+ CORBA::Long available_d;
+
+ if ((available.value >>= available_d) == false)
+ DANCE_ERROR (1, (LM_ERROR, "failed to extract available amount\n"));
+
+ if (available_d >= required_d)
+ {
+ available_d = available_d - required_d;
+
+ available.value <<= available_d;
+ }
+ else
+ {
+ ::Deployment::ResourceCommitmentFailure failure;
+
+ failure.reason = CORBA::string_dup ("Insufficient resources!");
+ failure.propertyName = CORBA::string_dup (available.name);
+ failure.propertyValue.length (1);
+ failure.propertyValue[0] = available.value;
+
+ throw failure;
+ }
+ }
+ else
+ {
+ //must be release
+ // @todo check return value of >>=
+ CORBA::Long required_d;
+ deployed.value >>= required_d;
+ CORBA::Long available_d;
+ available.value >>= available_d;
+
+ available_d = available_d + required_d;
+
+ // Should we check for bin > 100 ??????
+
+ available.value <<= available_d;
+ }
+}
+
+int DAnCE::DomainDataManager::add_to_domain (
+ const ::Deployment::Domain& domain)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::add_to_domain");
+
+ // here add the domain to the Domain
+ // right now use only a node
+
+ // got to take care of the fact , that a node can be added ,
+ // while it is still in the domain
+
+ //iterate through the supplied domain
+ //for each node
+ // find it in the pristine domain
+ // and copy it back to the provisioned_domain
+
+ for (CORBA::ULong i = 0;i < domain.node.length ();i++)
+ {
+ //find in the pristine domain
+ ::Deployment::Node a_node;
+
+ if (!this->find_in_initial_domain (domain.node[i].name.in (),
+ a_node))
+ continue; // dont know this node
+
+ //check if already present
+ if (!this->find_in_provisioned_domain (domain.node[i].name.in (),
+ a_node))
+ {
+ // add the node to the domain ...
+ provisioned_data_.node.length (provisioned_data_.node.length () + 1);
+ provisioned_data_.node[provisioned_data_.node.length () - 1] =
+ a_node;
+ }
+ }
+
+ return 0;
+}
+
+bool DAnCE::DomainDataManager::find_in_initial_domain (const char* node_name,
+ ::Deployment::Node& node)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::find_in_initial_domain");
+
+ for (CORBA::ULong i =0;
+ i < this->initial_domain_.node.length ();
+ i++)
+ {
+ if (ACE_OS::strcmp (node_name, this->initial_domain_.node[i].name.in ()) == 0)
+ {
+ node = this->initial_domain_.node[i];
+ return true;
+ }
+ }
+
+ // not found the node , return a node with an empty name
+ return false;
+}
+
+
+bool DAnCE::DomainDataManager::find_in_provisioned_domain (const char* node_name,
+ ::Deployment::Node& node)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::find_in_provisioned_domain");
+
+ for (CORBA::ULong i =0;
+ i < this->provisioned_data_.node.length ();
+ i++)
+ {
+ if (ACE_OS::strcmp (node_name, this->provisioned_data_.node[i].name.in ()) == 0)
+ {
+ node = this->provisioned_data_.node[i];
+ return true;
+ }
+ }
+
+ // not found the node , return a node with an empty name
+ return false;
+}
+
+int DAnCE::DomainDataManager::delete_from_domain (
+ const ::Deployment::Domain& domain)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::delete_from_domain");
+
+ // validate input
+ if (domain.node.length () == 0)
+ return 1;
+
+ if (domain.node.length () >
+ this->provisioned_data_.node.length ())
+ return 0;
+
+ //algo : parse through the provisioned_data
+ // for each node , find in the deleted domain list
+ // if not found add it to the updated nodes list
+
+ ::Deployment::Nodes updated_nodes;
+ bool found = false;
+
+ for (CORBA::ULong j = 0;
+ j < this->provisioned_data_.node.length ();
+ j++)
+ {
+ found = false;
+
+ for (CORBA::ULong i = 0;i < domain.node.length ();i++)
+ {
+ if (ACE_OS::strcmp (domain.node[i].name.in (),
+ this->provisioned_data_.node[j].name.in ()) == 0)
+ {
+ found = true;
+ break; // found the node
+ }
+ }
+ if (found)
+ continue;
+
+ // not found in the deleted list
+
+ // update the length of the list
+ updated_nodes.length (updated_nodes.length () + 1);
+
+ // copy the node info
+ updated_nodes[updated_nodes.length () - 1] =
+ this->provisioned_data_.node[j];
+
+ } // for provisioned_data
+
+ // here update the provisioned data
+ this->provisioned_data_.node = updated_nodes;
+
+ return 1;
+}
+
+int DAnCE::DomainDataManager::intimate_planner (
+ const ::Deployment::Domain& domain)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::intimate_planner");
+
+ // use the connection with the planner and get a reference to the planner
+ // make a call top the planner
+ Deployment::Domain d = domain;
+ return 0;
+
+}
+
+bool DAnCE::DomainDataManager::update_node_status ()
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::update_node_status");
+
+ // update the node status here ...
+ return 0;
+}
+
+void DAnCE::DomainDataManager::commitResourceAllocation (
+ const ::Deployment::ResourceAllocations & resources)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::commitResourceAllocation");
+
+ // commit the resources
+ // parse into the plan and commit resources ...
+
+ // set the action value
+ current_action_ = commit;
+
+ this->commit_release_RA (resources);
+}
+
+void DAnCE::DomainDataManager::releaseResourceAllocation (
+ const ::Deployment::ResourceAllocations & resources)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::releaseResourceAllocation");
+
+ // set the action value
+ current_action_ = release;
+
+ this->commit_release_RA (resources);
+}
+
+
+int DAnCE::DomainDataManager::commit_release_RA (const ::Deployment::ResourceAllocations& resources)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::commit_release_RA");
+
+ // temporary used to guard against exceptions
+ temp_provisioned_data_ = provisioned_data_;
+
+
+ for (CORBA::ULong i = 0;i < resources.length ();i++)
+ {
+ try
+ {
+ ::Deployment::Resource& res = find_resource (resources[i]);
+
+ match_properties (resources[i].property , res.property);
+ }
+ catch (::Deployment::ResourceCommitmentFailure& ex)
+ {
+ // catch the exception and add parameters
+ DANCE_ERROR (1, (LM_ERROR, "Caught the Exception in releaseResourceAllocation\n"));
+ ex.index = i;
+ throw ex;
+ }
+ }
+
+ // here commit the commitresources
+ provisioned_data_ = temp_provisioned_data_;
+
+ return 0;
+}
+
+::Deployment::Resource&
+DAnCE::DomainDataManager::find_resource (
+ const ::Deployment::ResourceAllocation& resource)
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::find_resource");
+
+ // for now search the resource in the Node sequence; Later need
+ // to add it to the Bridges and Interconnects too according to the
+ // spec
+ for (CORBA::ULong j = 0;j < this->temp_provisioned_data_.node.length ();j++)
+ {
+ if (!ACE_OS::strcmp (resource.elementName.in () ,
+ this->temp_provisioned_data_.node[j].name.in ()))
+ {
+ for (CORBA::ULong k =0;
+ k < this->temp_provisioned_data_.node[j].resource.length ();
+ k++)
+ {
+ if (!ACE_OS::strcmp (this->temp_provisioned_data_.node[j].resource[k].name.in (),
+ resource.resourceName.in ()))
+ return this->temp_provisioned_data_.node[j].resource[k];//resource found here, return
+ }
+
+ // resource not found
+ throw ::Deployment::ResourceCommitmentFailure ().reason = CORBA::string_dup ("Resource Not Found\n");
+ }
+ }
+ throw ::Deployment::ResourceCommitmentFailure ().reason = CORBA::string_dup ("Resource Not Found\n");
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/DomainDataManager.h b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.h
new file mode 100644
index 00000000000..42986d94a80
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.h
@@ -0,0 +1,243 @@
+// $Id$
+//===============================================================
+/**
+ * @file DomainDataManager.h
+ *
+ * @brief Maintains the Domain Information
+ *
+ * It contains the entire Domain information. Both the
+ * initial domain as well as the current available domain.
+ *
+ * @author Nilabja Roy nilabjar@dre.vanderbilt.edu
+ */
+//===============================================================
+#ifndef DOMAIN_DATA_MGRH
+#define DOMAIN_DATA_MGRH
+
+#include "Deployment/Deployment_TargetDataC.h"
+#include "Deployment/Deployment_TargetManagerC.h"
+
+namespace DAnCE
+{
+ /**
+ * @class DomainDataManager
+ *
+ * @brief Responsible for maintaining the Domain Information
+ *
+ * It maintains both the Current Domain Information as well
+ * as the Initial domain at full capacity.
+ */
+ class DomainDataManager
+ {
+
+ public :
+ /**
+ * @brief This function is called by the other classes to update
+ * current domain data.
+ * @param elements The string sequence of elements
+ * being updated
+ * @param domainSubset The subset of the actual Domain to be updated
+ * @param updateKind Specifies the update type eg. add, delete, update
+ *
+ */
+ int update_domain (const ::CORBA::StringSeq & elements,
+ const ::Deployment::Domain & domainSubset,
+ ::Deployment::DomainUpdateKind updateKind);
+ /**
+ * @brief This function is called from the Executor code
+ * to get the Original Domain data.
+ * @return Domain* The Initial Domain
+ */
+ ::Deployment::Domain* get_initial_domain (void);
+
+ /**
+ * @brief This function is called from the Executor code
+ * to get the Current Domain data.
+ * @return Domain* The Current Domain
+ */
+ ::Deployment::Domain* get_current_domain (void);
+
+ /**
+ * @brief returns the sequence of node managers
+ * object reference
+ */
+ ::Deployment::ResourceCommitmentManager_ptr
+ commitResources (const ::Deployment::ResourceAllocations & resources);
+
+ /**
+ * @brief The function releases the resources held by a plan
+ */
+ void releaseResources (const ::Deployment::ResourceCommitmentManager_ptr manager);
+
+ /**
+ * @brief The function allocates resources specified in the
+ * parameter
+ *
+ * This function is for the ResourceCommitmentManager
+ *
+ */
+ void commitResourceAllocation (
+ const ::Deployment::ResourceAllocations & resources);
+
+ /**
+ * @brief The function releases resources specified in the
+ * parameter
+ *
+ * This function is for the ResourceCommitmentManager
+ *
+ */
+ void releaseResourceAllocation (
+ const ::Deployment::ResourceAllocations & resources);
+
+ /**
+ * @brief Initializing DomainDataManager
+ *
+ * This function inits the DomainDataManager
+ *
+ */
+ void init (CORBA::ORB_ptr orb,
+ ::Deployment::TargetManager_ptr target,
+ const ACE_TCHAR *domain_name);
+
+ private:
+ /// The different action that can take place
+ enum Action {commit , release};
+
+ /**
+ * @brief It will read the initial Domain data from
+ * XML files.
+ */
+ int readin_domain_data (void);
+
+ /**
+ * @brief Match the deployed resources to the
+ * available resource
+ */
+ void match_requirement_resource (
+ ::Deployment::InstanceResourceDeploymentDescriptions deployed,
+ ::Deployment::Resources& available);
+
+ /**
+ * @brief Match the properties of a Requirement to the
+ * properties of available resource
+ * @param deployed The deployed Properties
+ * @param available The available Properties
+ */
+ void match_properties (
+ ::Deployment::Properties deployed,
+ ::Deployment::SatisfierProperties& available);
+
+
+ /**
+ * @brief Either commits or releases the given resource
+ * based on the current Action set.
+ * @param deployed ::Deployment::Property is the resource
+ * to be commited/released
+ * @param available ::Deployment::SatisfierProperty is the
+ * available resource from which committed/released.
+ * @exception ::Deployment::ResourceNotAvailable thrown
+ * when the deployed resources exceeds
+ * the available resource.
+ */
+ void commit_release_resource ( ::Deployment::Property & deployed,
+ ::Deployment::SatisfierProperty & available);
+
+ /**
+ * @brief This function calls all NM and gives them
+ * the sub-domain
+ */
+ int call_all_node_managers (void);
+
+ /**
+ * @brief This function add new elements to the
+ * already existing domain
+ *
+ * @param domain Deployment::Domain contians the new
+ * elements
+ */
+ int add_to_domain (const ::Deployment::Domain& domain);
+
+ /**
+ * @brief This function deletes elements from the domain
+ *
+ * @param domain ::Deployment::Domain contains the new elements
+ * in the domain
+ */
+ int delete_from_domain (const ::Deployment::Domain& domain);
+
+ /**
+ * @brief This function intimates the planner about a domain
+ * change
+ *
+ * @param domain ::Deployment::Domain contains the new elements
+ * in the domain
+ */
+ int intimate_planner (const ::Deployment::Domain& domain);
+
+ /**
+ * @brief This function finds a new node in the initial_domain
+ *
+ * @param node The name of the node which is to be searched
+ */
+
+ bool find_in_initial_domain (const char* node_name,
+ ::Deployment::Node& node);
+ /**
+ * @brief This function finds a new node in the proviosiond_domain
+ *
+ * @param node The name of the node which is to be searched
+ */
+ bool find_in_provisioned_domain (const char* node_name,
+ ::Deployment::Node& node);
+
+ /**
+ * @brief updates the node status by reading it from a file
+ */
+ bool update_node_status ();
+
+ /**
+ * @function find_resource
+ * @brief It finds the Resource structure which is respresents the
+ * ResourceAllocation
+ */
+ ::Deployment::Resource& find_resource (
+ const ::Deployment::ResourceAllocation& resource);
+
+ int commit_release_RA (
+ const ::Deployment::ResourceAllocations& resources);
+
+ /// The ORB pointer
+ CORBA::ORB_var orb_;
+
+ /// The Deployment Configuration
+ // CIAO::Deployment_Configuration deployment_config_;
+
+ /// The Initial Domain - contains resources
+ /// at total capacity
+ ::Deployment::Domain initial_domain_;
+
+ /// The Current Domain - contains resources at current capacity
+ ::Deployment::Domain current_domain_;
+
+ /// The Target Manager Context
+ ::Deployment::TargetManager_var target_mgr_;
+
+ /**
+ * The static provisioned Domain data
+ */
+ ::Deployment::Domain provisioned_data_;
+
+ /// temporary domain used in commit/release to
+ /// guard against exceptions
+ ::Deployment::Domain temp_provisioned_data_;
+
+ /// The current action
+ Action current_action_;
+ };
+
+ typedef ACE_Singleton <DomainDataManager, ACE_SYNCH_RECURSIVE_MUTEX>
+ DomainDataManager_Singleton;
+#define DOMAIN_DATA_MANAGER DomainDataManager_Singleton::instance ()
+} // CIAO
+
+#endif /* DOMAIN_DATA_MGRH */
diff --git a/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp
new file mode 100644
index 00000000000..dbef7942d93
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp
@@ -0,0 +1,61 @@
+// $Id$
+//
+#include "ResourceCommitmentManager.h"
+#include "DomainDataManager.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+DAnCE::ResourceCommitmentManager_i::ResourceCommitmentManager_i (void)
+{
+ DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i");
+}
+
+DAnCE::ResourceCommitmentManager_i::~ResourceCommitmentManager_i (void)
+{
+ DANCE_TRACE ("DAnCE::~ResourceCommitmentManager_i");
+}
+
+void
+DAnCE::ResourceCommitmentManager_i::commitResources (
+ const ::Deployment::ResourceAllocations& resources)
+{
+ DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::commitResources");
+
+ DOMAIN_DATA_MANAGER->commitResourceAllocation (resources);
+
+ // Commit succesful .. add to commited resource, we get an exception
+ // if the method above fails
+ this->add_to_committed_resource (resources);
+}
+
+void
+DAnCE::ResourceCommitmentManager_i::releaseResources (
+ const ::Deployment::ResourceAllocations & resources)
+{
+ DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::releaseResources");
+
+ // If the resources set is null, use the already allocated resources ..
+ if (resources.length () == 0)
+ {
+ DOMAIN_DATA_MANAGER->releaseResourceAllocation (this->resources_);
+ }
+ else
+ {
+ DOMAIN_DATA_MANAGER->releaseResourceAllocation (resources);
+ }
+}
+
+void
+DAnCE::ResourceCommitmentManager_i::add_to_committed_resource (
+ ::Deployment::ResourceAllocations res)
+{
+ DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::add_to_commited_resource");
+
+ CORBA::ULong const current_length = this->resources_.length ();
+
+ this->resources_.length (current_length + res.length ());
+
+ for (CORBA::ULong i = 0;i < res.length ();i++)
+ {
+ this->resources_[current_length + i] = res[i];
+ }
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h
new file mode 100644
index 00000000000..d7c4a81cff4
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h
@@ -0,0 +1,59 @@
+// $Id$
+//
+/**
+ * @file ResourceCommitmentManager.h
+ *
+ * @brief This file declares the ResourceCommitmentManager class
+ *
+ * This class acts as the servant of the interface
+ * ResourceCommitmentManager
+ */
+#ifndef DEPLOYMENT_RESOURCECOMMITMENTMANAGERI_H_
+#define DEPLOYMENT_RESOURCECOMMITMENTMANAGERI_H_
+
+#include "DAnCE/Deployment/Deployment_ResourceCommitmentManagerS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace DAnCE
+{
+
+ class ResourceCommitmentManager_i
+ : public virtual POA_Deployment::ResourceCommitmentManager
+ {
+ public:
+ /// Constructor
+ ResourceCommitmentManager_i (void);
+
+ /// Destructor
+ virtual ~ResourceCommitmentManager_i (void);
+
+ /**
+ * @brief Commits the resources
+ *
+ * This function makes a call to the DomainDataManager in order
+ * to commit the resources mentioned in the ResourceAllocation
+ * sequence. If the resource cannot be allocated throws a
+ * ResourceCommitmentFailed exception
+ */
+ virtual void commitResources (
+ const ::Deployment::ResourceAllocations& resources);
+
+ virtual void releaseResources (
+ const ::Deployment::ResourceAllocations & resources);
+
+ private:
+ /**
+ * @brief This function adds the res to already commited resources.
+ * This is to be called from within commitResources
+ */
+ void add_to_committed_resource (::Deployment::ResourceAllocations res);
+
+ /// The commited resource
+ ::Deployment::ResourceAllocations resources_;
+ };
+}
+
+#endif /* DEPLOYMENT_RESOURCECOMMITMENTMANAGERI_H_ */
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager.mpc b/modules/CIAO/DAnCE/TargetManager/TargetManager.mpc
new file mode 100644
index 00000000000..ade06accf16
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager.mpc
@@ -0,0 +1,17 @@
+// $Id$
+
+project (DAnCE_TargetManager_Exec) : iortable, utils, naming, dance_logger, \
+ dance_nodemanager_stub, dance_nodemanager_skel, dance_exe, \
+ dance_config_handlers, dance_targetmanager_skel {
+ exename = dance_target_manager
+ IDL_Files {
+ }
+
+ Source_Files {
+ DomainDataManager.cpp
+ ResourceCommitmentManager.cpp
+ TargetManager_Impl.cpp
+ Target_Manager_Module.cpp
+ Target_Manager.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp
new file mode 100644
index 00000000000..1f8c342a584
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp
@@ -0,0 +1,59 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "TargetManager_Impl.h"
+#include "DomainDataManager.h"
+
+namespace DAnCE
+{
+TargetManagerDaemon_i::TargetManagerDaemon_i (CORBA::ORB_ptr orb)
+ : orb_ (::CORBA::ORB::_duplicate (orb))
+{
+}
+
+TargetManagerDaemon_i::~TargetManagerDaemon_i (void)
+{
+}
+
+void TargetManagerDaemon_i::init (const ACE_TCHAR *file)
+{
+ DAnCE::DOMAIN_DATA_MANAGER->init (this->orb_.in (),
+ this->_this (),
+ file);
+}
+
+::Deployment::Domain * TargetManagerDaemon_i::getAllResources (void)
+{
+ return DAnCE::DOMAIN_DATA_MANAGER->get_initial_domain ();
+}
+
+::Deployment::Domain *
+TargetManagerDaemon_i::getAvailableResources (void)
+{
+ return DAnCE::DOMAIN_DATA_MANAGER->get_current_domain ();
+}
+
+::Deployment::ResourceCommitmentManager_ptr
+TargetManagerDaemon_i::createResourceCommitment (
+ const ::Deployment::ResourceAllocations & resources)
+{
+ return DAnCE::DOMAIN_DATA_MANAGER->commitResources (resources);
+}
+
+void TargetManagerDaemon_i::destroyResourceCommitment (
+ ::Deployment::ResourceCommitmentManager_ptr manager)
+{
+ return DAnCE::DOMAIN_DATA_MANAGER->releaseResources (manager);
+}
+
+void TargetManagerDaemon_i::updateDomain (
+ const ::CORBA::StringSeq & elements,
+ const ::Deployment::Domain & domainSubset,
+ ::Deployment::DomainUpdateKind updateKind)
+{
+ DAnCE::DOMAIN_DATA_MANAGER->update_domain (elements, domainSubset, updateKind);
+}
+
+
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.h b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.h
new file mode 100644
index 00000000000..29746211584
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.h
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+//
+// $Id$
+
+
+#ifndef TARGETMANAGERDAEMONI_H_
+#define TARGETMANAGERDAEMONI_H_
+
+#include "Deployment/Deployment_TargetManagerS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace DAnCE
+{
+class TargetManagerDaemon_i
+ : public virtual POA_Deployment::TargetManager
+{
+public:
+ /// Constructor
+ TargetManagerDaemon_i (CORBA::ORB_ptr orb);
+
+ /// Destructor
+ virtual ~TargetManagerDaemon_i (void);
+
+ void init (const ACE_TCHAR *file);
+
+ virtual ::Deployment::Domain * getAllResources (void);
+
+ virtual ::Deployment::Domain * getAvailableResources (void);
+
+ virtual
+ ::Deployment::ResourceCommitmentManager_ptr createResourceCommitment (
+ const ::Deployment::ResourceAllocations & resources);
+
+ virtual void destroyResourceCommitment (
+ ::Deployment::ResourceCommitmentManager_ptr manager);
+
+ virtual void updateDomain (
+ const ::CORBA::StringSeq & elements,
+ const ::Deployment::Domain & domainSubset,
+ ::Deployment::DomainUpdateKind updateKind);
+
+ private:
+ CORBA::ORB_var orb_;
+};
+}
+
+
+#endif /* TARGETMANAGERDAEMONI_H_ */
+
diff --git a/modules/CIAO/DAnCE/TargetManager/Target_Manager.cpp b/modules/CIAO/DAnCE/TargetManager/Target_Manager.cpp
new file mode 100644
index 00000000000..76f45218764
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "Target_Manager_Module.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("TargetManager - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("TargetManager - initializing module instance\n")));
+
+ DAnCE_TargetManager_Module tm;
+ CORBA::Object_var obj = tm.init (orb.in (), argc, argv);
+
+ if (!CORBA::is_nil (obj.in ()))
+ {
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("TargetManager - running ORB\n")));
+ orb->run ();
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("TargetManager - destroying ORB\n")));
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("TargetManager");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "TargetManager - Error: Unknown exception.\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
+
diff --git a/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.cpp b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.cpp
new file mode 100644
index 00000000000..3fa9cfd0142
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.cpp
@@ -0,0 +1,340 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Target_Manager_Module.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Task.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/DAnCE/DAnCE_PropertiesC.h"
+
+#include "TargetManager_Impl.h"
+
+ACE_RCSID (DAnCE,
+ Targer_Manager_Module,
+ "$Id$")
+
+namespace DAnCE
+{
+ namespace Target_Manager
+ {
+ bool
+ write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
+ {
+ FILE* ior_output_file_ =
+ ACE_OS::fopen (ior_file_name, ACE_TEXT("w"));
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ return true;
+ }
+ return false;
+ }
+ }
+}
+
+DAnCE_TargetManager_Module::DAnCE_TargetManager_Module (void)
+{
+ //DANCE_TRACE("DAnCE_TargetManager_Module::DAnCE_TargetManager_Module");
+}
+
+DAnCE_TargetManager_Module::~DAnCE_TargetManager_Module (void)
+{
+ DANCE_TRACE ("DAnCE_TargetManager_Module::~DAnCE_TargetManager_Module");
+
+ for (Servant_Map::iterator it = this->rm_map_.begin ();
+ it != this->rm_map_.end ();
+ ++it)
+ {
+ delete (*it).int_id_;
+ }
+}
+
+const char *
+DAnCE_TargetManager_Module::usage (void)
+{
+ DANCE_TRACE ("DAnCE_TargetManager_Module::usage");
+ return "Repository Manager Options:\n"
+ //"\t-n|--name [name]\t Name to register in the naming service\n"
+ "\t-f|--file [name]\t Filename to output IOR.\n"
+ "\t-i|--init [name]\t Filename read initial domain descriptor.\n"
+ "\t-d|--domain-nc [NC]\t Default naming context for domain objects.\n"
+ "\t-h|help\t\t\t print this help message\n"
+ ;
+
+}
+
+bool
+DAnCE_TargetManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
+{
+ DANCE_TRACE ("DAnCE_TargetManager_Module::parse_args");
+
+ ACE_Get_Opt get_opts (argc - 1,
+ argv + 1,
+ ACE_TEXT(":hd:f:i:"),
+ 0,
+ 0,
+ ACE_Get_Opt::RETURN_IN_ORDER,
+ 1);
+
+ get_opts.long_option (ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+ get_opts.long_option (ACE_TEXT("domain-nc"), 'd', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("file"), 'f', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("init"), 'i', ACE_Get_Opt::ARG_REQUIRED);
+
+ int c;
+ while ( (c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'd':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
+ "Binding to provided Domain Naming Context: '%s'\n",
+ get_opts.opt_arg ()));
+ this->options_.domain_nc_ = get_opts.opt_arg ();
+ break;
+
+ case 'f':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
+ "Output filename for IOR is %s\n",
+ get_opts.opt_arg ()));
+ this->options_.ior_file_ = get_opts.opt_arg ();
+ break;
+
+ case 'i':
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
+ "Initial domain file %s\n",
+ get_opts.opt_arg ()));
+ this->options_.domain_descr_ = get_opts.opt_arg ();
+ break;
+
+ case 'h':
+ case '?': // Display help for use of the server.
+ ACE_ERROR_RETURN ((LM_ERROR,
+ this->usage (),
+ argv [0], c),
+ false);
+ break;
+
+ case 0:
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Repository_Manager_Module::parse_args - "
+ "ERROR: unknown long option %s\n",
+ get_opts.long_option ()));
+ }
+
+ break;
+
+ default:
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Repository_Manager_Module::parse_args - ignoring unknown option %c:%C\n",
+ c, get_opts.opt_arg ()));
+ }
+
+ }
+
+ return true;
+}
+
+CORBA::Object_ptr
+DAnCE_TargetManager_Module::init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_TargetManager_Module::init");
+
+ try
+ {
+ if (CORBA::is_nil(orb))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Attempted to create Target Manager with a nil orb.\n"));
+ return CORBA::Object::_nil();
+ }
+ else
+ {
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ }
+
+ if (ACE_OS::strcmp(orb->id(), this->orb_->id()) != 0)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Resetting TM's orb.\n"));
+ this->orb_ = CORBA::ORB::_duplicate (orb);
+ this->domain_nc_ = CosNaming::NamingContext::_nil();
+ }
+
+ if (!this->parse_args (argc, argv))
+ {
+ return CORBA::Object::_nil ();
+ }
+
+ this->create_poas ();
+
+ if (this->options_.domain_nc_)
+ {
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Resolving DomainNC.\n"));
+ CORBA::Object_var domain_obj = this->orb_->string_to_object (this->options_.domain_nc_);
+ if (!CORBA::is_nil (domain_obj.in ()))
+ {
+ this->domain_nc_ = CosNaming::NamingContext::_narrow (domain_obj.in());
+ if (CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR,DLINFO "DAnCE_TargetManager_Module::init - "
+ "Narrow to NamingContext return nil for DomainNC.\n"));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ catch (CORBA::Exception&)
+ {
+ DANCE_DEBUG (6, (LM_WARNING, DLINFO "DAnCE_TargetManager_Module::init - "
+ "DomainNC context not found!\n"));
+ }
+ }
+
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Initializing the IOR Table\n"));
+ // Initialize IOR table
+ CORBA::Object_var table_object = orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter = IORTable::Table::_narrow (table_object.in ());
+
+ if (CORBA::is_nil (adapter.in ()))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Unable to RIR the IORTable.\n"));
+ return CORBA::Object::_nil ();
+ }
+
+
+ //Creating repository manager servant
+ DAnCE::TargetManagerDaemon_i * rm = new DAnCE::TargetManagerDaemon_i (orb);
+
+ PortableServer::ServantBase_var safe_svt (rm);
+
+ ACE_CString repository_manager_oid;
+
+ if (this->options_.name_ == 0)
+ {
+ repository_manager_oid = "TargetManager";
+ }
+ else
+ {
+ repository_manager_oid = ACE_TEXT_ALWAYS_CHAR (this->options_.name_);
+ repository_manager_oid += ".TargetManager";
+ }
+
+ // Registering servant in poa
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId (repository_manager_oid.c_str());
+ this->rm_poa_->activate_object_with_id (oid, rm);
+
+ // Getting repository manager ior
+ CORBA::Object_var nm_obj = this->rm_poa_->id_to_reference (oid.in ());
+ CORBA::String_var ior = orb->object_to_string (nm_obj.in ());
+
+ // Binding ior to IOR Table
+ adapter->bind (repository_manager_oid.c_str (), ior.in ());
+
+ // Binding repository manager to DomainNC
+ if (!CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ ACE_CString ns_name;
+ if (this->options_.name_ == 0)
+ {
+ ns_name = "TargetManager";
+ }
+ else
+ {
+ ns_name = ACE_TEXT_ALWAYS_CHAR (this->options_.name_);
+ }
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Registering NM in NC as \"%C\".\n", ns_name.c_str ()));
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup (ns_name.c_str ());
+ name[0].kind = CORBA::string_dup ("TargetManager");
+ this->domain_nc_->rebind (name, nm_obj.in ());
+ }
+
+ // Writing ior to file
+ if (0 != this->options_.ior_file_)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Writing RM IOR %C to file %C.\n", this->options_.ior_file_, ior.in ()));
+ if (!DAnCE::Target_Manager::write_IOR (this->options_.ior_file_, ior.in ()))
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "DAnCE_TargetManager_Module::init - "
+ "Error: Unable to write IOR to file %C\n",
+ this->options_.ior_file_));
+ }
+
+ // Activate POA manager
+ PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
+ mgr->activate ();
+
+ // Finishing Deployment part
+ DANCE_DEBUG (6, (LM_NOTICE, DLINFO "DAnCE_TargetManager_Module::init - "
+ "DAnCE_TargetManager is running...\n"));
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO "DAnCE_TargetManager_Module::init - "
+ "TargetManager IOR: %s\n", ior.in ()));
+
+ return nm_obj._retn ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("DAnCE_TargetManager::main\t\n");
+ return CORBA::Object::_nil ();
+ }
+}
+
+void
+DAnCE_TargetManager_Module::create_poas (void)
+{
+ DANCE_TRACE("DAnCE_Repository_Manager_Module::create_poas");
+ // Get reference to Root POA.
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_poas - "
+ "Resolving root POA\n"));
+ CORBA::Object_var obj = this->orb_->resolve_initial_references ("RootPOA");
+
+ this->root_poa_ = PortableServer::POA::_narrow (obj.in ());
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_poas - "
+ "Obtaining the POAManager\n"));
+ PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
+
+ TAO::Utils::PolicyList_Destroyer policies (2);
+ policies.length (2);
+
+ try
+ {
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_poas - "
+ "DAnCE_TargetManager_Module::create_poas - "
+ "Creating the \"Repository\" POA.\n"));
+
+ policies[0] = this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID);
+ policies[1] = this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT);
+ this->rm_poa_ = this->root_poa_->create_POA ("Repository",
+ mgr.in(),
+ policies);
+ }
+ catch (const PortableServer::POA::AdapterAlreadyExists &)
+ {
+ DANCE_DEBUG (8, (LM_INFO, DLINFO "DAnCE_TargetManager_Module::create_poas - "
+ "Using existing \"Repository\" POA\n"));
+ this->rm_poa_ = this->root_poa_->find_POA ("Repository", 0);
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.h b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.h
new file mode 100644
index 00000000000..17721120884
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.h
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Target_Manager_Module.h
+ *
+ * $Id$
+ *
+ * @brief To start TargetManager by starter
+ *
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NODE_MANAGER_MODULE_H
+#define NODE_MANAGER_MODULE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Service_Config.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/POAC.h"
+#include "orbsvcs/CosNamingC.h"
+#include "TargetManager_Impl.h"
+
+/**
+ * @class Target_Manager_Module
+ *
+ * This class runs the node manager instance
+ */
+class DAnCE_TargetManager_Module
+{
+ public:
+ /// Constructor.
+ DAnCE_TargetManager_Module (void);
+
+ /// Destructor.
+ ~DAnCE_TargetManager_Module (void);
+
+ CORBA::Object_ptr init (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ private:
+ const char * usage (void);
+
+ bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ struct SOptions
+ {
+ const ACE_TCHAR * domain_nc_;
+ const ACE_TCHAR * ior_file_;
+ const ACE_TCHAR * domain_descr_;
+ const ACE_TCHAR * name_;
+
+ SOptions() :
+ domain_nc_ (0),
+ ior_file_ (0),
+ domain_descr_ (0),
+ name_ (0)
+ {
+ }
+ };
+
+ void create_poas (void);
+
+ /// Here we store the servants.
+ typedef ACE_Map_Manager < ACE_CString,
+ DAnCE::TargetManagerDaemon_i *,
+ ACE_Null_Mutex > Servant_Map;
+
+ Servant_Map rm_map_;
+
+ CORBA::ORB_var orb_;
+ CosNaming::NamingContext_var domain_nc_;
+
+ SOptions options_;
+
+ PortableServer::POA_var root_poa_;
+ PortableServer::POA_var rm_poa_;
+};
+
+#include /**/ "ace/post.h"
+
+#endif /* NODE_MANAGER_MODULE_H */
diff --git a/modules/CIAO/DAnCE/bin/.empty b/modules/CIAO/DAnCE/bin/.empty
new file mode 100644
index 00000000000..eb0e403e06a
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/.empty
@@ -0,0 +1 @@
+This file keeps the directory around even when using cvs update -dP
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/__init__.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/__init__.py
new file mode 100755
index 00000000000..0ebbdbeba93
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/__init__.py
@@ -0,0 +1 @@
+import generator
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/__init__.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/__init__.py
new file mode 100755
index 00000000000..6942635ce28
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/__init__.py
@@ -0,0 +1,52 @@
+temp_path = ""
+
+
+# # The following is the initialization logic that is executed
+# # when the fuzz module is loaded
+# from os import listdir, chdir, getcwd
+# from sys import stderr, path
+# oldwd = getcwd ()
+
+# try:
+# # The following is a trick to get the directory THIS SCRIPT - note, not necessarily the CWD -
+# # is located. We use this path later to load all of the available templates
+# import _path
+# script_path = str (_path).split ()[3][1:-11]
+# if script_path == "":
+# script_path = "."
+
+# chdir (script_path + "/templates")
+
+# path.append (getcwd ())
+
+# files = listdir (".")
+
+# modules = list ()
+
+
+# for item in files:
+# if (item[0] != '_') and (item[-3:] == ".py"):
+# print "Registering " + item [:-3]
+# try:
+# __import__ (item[:-3])
+# except:
+# stderr.write ("ERROR: Unable to load the " + item[:-3] + " template\n")
+
+# finally:
+# chdir (oldwd)
+
+import header
+import comp_impl
+import comp_inst
+import footer
+import homed_comp_impl
+import homed_comp_inst
+import home_impl
+import home_inst
+import artifact
+import connection
+import external_reference
+import config_prop
+import internal_endpoint
+import deploy_requirement
+
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/_path.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/_path.py
new file mode 100755
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/_path.py
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/artifact.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/artifact.py
new file mode 100755
index 00000000000..dbebad5291d
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/artifact.py
@@ -0,0 +1,24 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name):
+ """
+ <artifact xmi:id="${component_name}_ExecArtifact">
+ <name>${component_name}_exec</name>
+ <source/>
+ <node/>
+ <location>${component_name}_exec</location>
+ </artifact>
+ <artifact xmi:id="${component_name}_SvntArtifact">
+ <name>${component_name}_svnt</name>
+ <source/>
+ <node/>
+ <location>${component_name}_svnt</location>
+ </artifact>
+ <artifact xmi:id="${component_name}_StubArtifact">
+ <name>${component_name}_stub</name>
+ <source/>
+ <node/>
+ <location>${component_name}_stub</location>
+ </artifact>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_impl.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_impl.py
new file mode 100755
index 00000000000..b7dcfbf4a50
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_impl.py
@@ -0,0 +1,58 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name, namespace) :
+ """
+
+ <implementation xmi:id="${component_name}ComponentImplementation">
+ <name>${component_name}ComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="${component_name}_ExecArtifact" />
+ <artifact xmi:idref="${component_name}_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_${namespace}${component_name}_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_${namespace}${component_name}_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>${component_name}_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>${component_name}_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+"""
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_inst.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_inst.py
new file mode 100755
index 00000000000..a235501d12e
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_inst.py
@@ -0,0 +1,25 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name, config_values, impl, node) :
+ """
+ ${{
+ if impl == "":
+ impl = component_name + "ComponentImplementation"
+
+ if node == "":
+ node = "NodeOne"
+
+ }}
+
+ <instance xmi:id="${component_name}ComponentInstance">
+ <name>${component_name}Component</name>
+ <node>${node}</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="${impl}" />
+
+ ${config_values}
+ </instance>
+
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/config_prop.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/config_prop.py
new file mode 100644
index 00000000000..79c5b1199ee
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/config_prop.py
@@ -0,0 +1,17 @@
+from templet import stringfunction
+
+@stringfunction
+def template (name, typename, value) :
+ """
+ <configProperty>
+ <name>${name}</name>
+ <value>
+ <type>
+ <kind>tk_${typename}</kind>
+ </type>
+ <value>
+ <${typename}>${value}</${typename}>
+ </value>
+ </value>
+ </configProperty>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/connection.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/connection.py
new file mode 100644
index 00000000000..b1691f2cd27
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/connection.py
@@ -0,0 +1,12 @@
+from templet import stringfunction
+
+@stringfunction
+def template (name, deployrequirement, endpoint_one, endpoint_two) :
+ """
+ <connection>
+ <name>${name}</name>
+ ${deployrequirement}
+ ${endpoint_one}
+ ${endpoint_two}
+ </connection>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/deploy_requirement.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/deploy_requirement.py
new file mode 100644
index 00000000000..700b02958c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/deploy_requirement.py
@@ -0,0 +1,11 @@
+from templet import stringfunction
+
+@stringfunction
+def template (requirement_name, requirement_type) :
+ """
+ <deployRequirement>
+ <name>${requirement_name}</name>
+ <resourceType>${requirement_type}</resourceType>
+ </deployRequirement>
+ """
+
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/external_reference.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/external_reference.py
new file mode 100644
index 00000000000..3bb68174044
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/external_reference.py
@@ -0,0 +1,13 @@
+from templet import stringfunction
+
+@stringfunction
+def template (location, provider, name, supportedtype) :
+ """
+ <externalReference>
+ <location>${location}</location>
+ <provider>${provider}</provider>
+ <portName>${name}</portName>
+ <supportedType>${supportedtype}</supportedType>
+ <externalReference>
+ """
+
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/footer.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/footer.py
new file mode 100755
index 00000000000..687cfb78a02
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/footer.py
@@ -0,0 +1,8 @@
+from templet import stringfunction
+
+@stringfunction
+def template ():
+ """
+</Deployment:DeploymentPlan>
+"""
+
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/header.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/header.py
new file mode 100755
index 00000000000..c16146ae028
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/header.py
@@ -0,0 +1,14 @@
+from templet import stringfunction
+
+@stringfunction
+def template (uuid):
+ """
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>${uuid}</label>
+ <UUID>${uuid}</UUID>
+
+"""
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_impl.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_impl.py
new file mode 100755
index 00000000000..87c14a68070
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_impl.py
@@ -0,0 +1,57 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name, namespace) :
+ """
+ <implementation xmi:id="${component_name}HomeImplementation">
+ <name>${component_name}HomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="${component_name}_ExecArtifact" />
+ <artifact xmi:idref="${component_name}_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_${namespace}${component_name}Home_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_${namespace}${component_name}Home_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>${component_name}_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>${component_name}_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_inst.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_inst.py
new file mode 100755
index 00000000000..6d24a5c5986
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/home_inst.py
@@ -0,0 +1,13 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name) :
+ """
+ <instance xmi:id="${component_name}HomeInstance">
+ <name>${component_name}Home</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="${component_name}HomeImplementation" />
+ </instance>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_impl.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_impl.py
new file mode 100755
index 00000000000..ab8a7ee9517
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_impl.py
@@ -0,0 +1,13 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name) :
+ """
+ <implementation xmi:id="${component_name}ComponentImplementation">
+ <name>${component_name}ComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="${component_name}_ExecArtifact" />
+ <artifact xmi:idref="${component_name}_SvntArtifact" />
+ <artifact xmi:idref="${component_name}_StubArtifact" />
+ </implementation>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_inst.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_inst.py
new file mode 100755
index 00000000000..ee1218d4539
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/homed_comp_inst.py
@@ -0,0 +1,24 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name) :
+ """
+ <instance xmi:id="${component_name}ComponentInstance">
+ <name>${component_name}Component</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="${component_name}ComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>${component_name}Home</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/internal_endpoint.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/internal_endpoint.py
new file mode 100644
index 00000000000..594118c29fc
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/internal_endpoint.py
@@ -0,0 +1,12 @@
+from templet import stringfunction
+
+@stringfunction
+def template (name, provider, kind, instance) :
+ """
+ <internalEndpoint>
+ <portName>${name}</portName>
+ <provider>${provider}</provider>
+ <kind>${kind}</kind>
+ <instance xmi:idref="${instance}" />
+ </internalEndpoint>
+ """
diff --git a/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/templet.py b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/templet.py
new file mode 100755
index 00000000000..85cfb9f0389
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/templet.py
@@ -0,0 +1,325 @@
+"""A lightweight python templating engine. Templet version 2 beta.
+
+Supports two templating idioms:
+ 1. template functions using @stringfunction and @unicodefunction
+ 2. template classes inheriting from StringTemplate and UnicodeTemplate
+
+Each template function is marked with the attribute @stringfunction
+or @unicodefunction. Template functions will be rewritten to expand
+their document string as a template and return the string result.
+For example:
+
+ @stringtemplate
+ def myTemplate(animal, thing):
+ "the $animal jumped over the $thing."
+
+ print myTemplate('cow', 'moon')
+
+The template language understands the following forms:
+
+ $myvar - inserts the value of the variable 'myvar'
+ ${...} - evaluates the expression and inserts the result
+ ${{...}} - executes enclosed code; use 'out.append(text)' to insert text
+ $$ - an escape for a single $
+ $ (at the end of the line) - a line continuation
+
+Template functions are compiled into code that accumulates a list of
+strings in a local variable 'out', and then returns the concatenation
+of them. If you want do do complicated computation, you can append
+to 'out' directly inside a ${{...}} block.
+
+Another alternative is to use template classes.
+
+Each template class is a subclass of StringTemplate or UnicodeTemplate.
+Template classes should define a class attribute 'template' that
+contains the template code. Also, any class attribute ending with
+'_template' will be compiled into a template method.
+
+Use a template class by instantiating it with a dictionary or
+keyword arguments. Get the expansion by converting the instance
+to a string. For example:
+
+ class MyTemplate(templet.Template):
+ template = "the $animal jumped over the $thing."
+
+ print MyTemplate(animal='cow', thing='moon')
+
+Within a template class, the template language is similar to a template
+function, but 'self.write' should be used to build the string inside
+${{..}} blocks. Also, there is a shorthand for calling template methods:
+
+ $<sub_template> - shorthand for '${{self.sub_template(vars())}}'
+
+This idiom is helpful for decomposing a template and when subclassing.
+
+A longer example:
+
+ import cgi
+ class RecipeTemplate(templet.Template):
+ template = r'''
+ <html><head><title>$dish</title></head>
+ <body>
+ $<header_template>
+ $<body_template>
+ </body></html>
+ '''
+ header_template = r'''
+ <h1>${cgi.escape(dish)}</h1>
+ '''
+ body_template = r'''
+ <ol>
+ ${{
+ for item in ingredients:
+ self.write('<li>', item, '\n')
+ }}
+ </ol>
+ '''
+
+This template can be expanded as follows:
+
+ print RecipeTemplate(dish='burger', ingredients=['bun', 'beef', 'lettuce'])
+
+And it can be subclassed like this:
+
+ class RecipeWithPriceTemplate(RecipeTemplate):
+ header_template = "<h1>${cgi.escape(dish)} - $$$price</h1>\n"
+
+Templet is by David Bau and was inspired by Tomer Filiba's Templite class.
+For details, see http://davidbau.com/templet
+
+Templet is posted by David Bau under BSD-license terms.
+
+Copyright (c) 2007, David Bau
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of Templet nor the names of its contributors may
+ be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+"""
+
+import sys, re, inspect
+
+class _TemplateBuilder(object):
+ __pattern = re.compile(r"""\$( # Directives begin with a $
+ \$ | # $$ is an escape for $
+ [^\S\n]*\n | # $\n is a line continuation
+ [_a-z][_a-z0-9]* | # $simple Python identifier
+ \{(?!\{)[^\}]*\} | # ${...} expression to eval
+ \{\{.*?\}\} | # ${{...}} multiline code to exec
+ <[_a-z][_a-z0-9]*> | # $<sub_template> method call
+ )(?:(?:(?<=\}\})|(?<=>))[^\S\n]*\n)? # eat some trailing newlines
+ """, re.IGNORECASE | re.VERBOSE | re.DOTALL)
+
+ def __init__(self, constpat, emitpat, callpat=None):
+ self.constpat, self.emitpat, self.callpat = constpat, emitpat, callpat
+
+ def __realign(self, str, spaces=''):
+ """Removes any leading empty columns of spaces and an initial empty line"""
+ lines = str.splitlines();
+ if lines and not lines[0].strip(): del lines[0]
+ lspace = [len(l) - len(l.lstrip()) for l in lines if l.lstrip()]
+ margin = len(lspace) and min(lspace)
+ return '\n'.join((spaces + l[margin:]) for l in lines)
+
+ def build(self, template, filename, s=''):
+ code = []
+ for i, part in enumerate(self.__pattern.split(self.__realign(template))):
+ if i % 2 == 0:
+ if part: code.append(s + self.constpat % repr(part))
+ else:
+ if not part or (part.startswith('<') and self.callpat is None):
+ raise SyntaxError('Unescaped $ in ' + filename)
+ elif part.endswith('\n'): continue
+ elif part == '$': code.append(s + self.emitpat % '"$"')
+ elif part.startswith('{{'): code.append(self.__realign(part[2:-2], s))
+ elif part.startswith('{'): code.append(s + self.emitpat % part[1:-1])
+ elif part.startswith('<'): code.append(s + self.callpat % part[1:-1])
+ else: code.append(s + self.emitpat % part)
+ return '\n'.join(code)
+
+class _TemplateMetaClass(type):
+ __builder = _TemplateBuilder(
+ 'self.out.append(%s)', 'self.write(%s)', 'self.%s(vars())')
+
+ def __compile(cls, template, n):
+ globals = sys.modules[cls.__module__].__dict__
+ if '__file__' not in globals: filename = '<%s %s>' % (cls.__name__, n)
+ else: filename = '%s: <%s %s>' % (globals['__file__'], cls.__name__, n)
+ code = compile(cls.__builder.build(template, filename), filename, 'exec')
+ def expand(self, __dict = None, **kw):
+ if __dict: kw.update([i for i in __dict.iteritems() if i[0] not in kw])
+ kw['self'] = self
+ exec code in globals, kw
+ return expand
+
+ def __init__(cls, *args):
+ for attr, val in cls.__dict__.items():
+ if attr == 'template' or attr.endswith('_template'):
+ if isinstance(val, basestring):
+ setattr(cls, attr, cls.__compile(val, attr))
+ type.__init__(cls, *args)
+
+class StringTemplate(object):
+ """A base class for string template classes."""
+ __metaclass__ = _TemplateMetaClass
+
+ def __init__(self, *args, **kw):
+ self.out = []
+ self.template(*args, **kw)
+
+ def write(self, *args):
+ self.out.extend([str(a) for a in args])
+
+ def __str__(self):
+ return ''.join(self.out)
+
+# The original version of templet called StringTemplate "Template"
+Template = StringTemplate
+
+class UnicodeTemplate(object):
+ """A base class for unicode template classes."""
+ __metaclass__ = _TemplateMetaClass
+
+ def __init__(self, *args, **kw):
+ self.out = []
+ self.template(*args, **kw)
+
+ def write(self, *args):
+ self.out.extend([unicode(a) for a in args])
+
+ def __unicode__(self):
+ return u''.join(self.out)
+
+ def __str__(self):
+ return unicode(self).encode('utf-8')
+
+def _templatefunction(func, listname, stringtype):
+ globals, locals = sys.modules[func.__module__].__dict__, {}
+ if '__file__' not in globals: filename = '<%s>' % func.__name__
+ else: filename = '%s: <%s>' % (globals['__file__'], func.__name__)
+ builder = _TemplateBuilder('%s.append(%%s)' % listname,
+ '%s.append(%s(%%s))' % (listname, stringtype))
+ args = inspect.getargspec(func)
+ code = [
+ 'def %s%s:' % (func.__name__, inspect.formatargspec(*args)),
+ ' %s = []' % listname,
+ builder.build(func.__doc__, filename, ' '),
+ ' return "".join(%s)' % listname]
+ code = compile('\n'.join(code), filename, 'exec')
+ exec code in globals, locals
+ return locals[func.__name__]
+
+def stringfunction(func):
+ """Function attribute for string template functions"""
+ return _templatefunction(func, listname='out', stringtype='str')
+
+def unicodefunction(func):
+ """Function attribute for unicode template functions"""
+ return _templatefunction(func, listname='out', stringtype='unicode')
+
+# When executed as a script, run some testing code.
+if __name__ == '__main__':
+ ok = True
+ def expect(actual, expected):
+ global ok
+ if expected != actual:
+ print "error - got:\n%s" % repr(actual)
+ ok = False
+ class TestAll(Template):
+ """A test of all the $ forms"""
+ template = r"""
+ Bought: $count ${name}s$
+ at $$$price.
+ ${{
+ for i in xrange(count):
+ self.write(TestCalls(vars()), "\n") # inherit all the local $vars
+ }}
+ Total: $$${"%.2f" % (count * price)}
+ """
+ class TestCalls(Template):
+ """A recursive test"""
+ template = "$name$i ${*[TestCalls(name=name[0], i=n) for n in xrange(i)]}"
+ expect(
+ str(TestAll(count=5, name="template call", price=1.23)),
+ "Bought: 5 template calls at $1.23.\n"
+ "template call0 \n"
+ "template call1 t0 \n"
+ "template call2 t0 t1 t0 \n"
+ "template call3 t0 t1 t0 t2 t0 t1 t0 \n"
+ "template call4 t0 t1 t0 t2 t0 t1 t0 t3 t0 t1 t0 t2 t0 t1 t0 \n"
+ "Total: $6.15\n")
+ class TestBase(Template):
+ template = r"""
+ <head>$<head_template></head>
+ <body>$<body_template></body>
+ """
+ class TestDerived(TestBase):
+ head_template = "<title>$name</title>"
+ body_template = "${TestAll(vars())}"
+ expect(
+ str(TestDerived(count=4, name="template call", price=2.88)),
+ "<head><title>template call</title></head>\n"
+ "<body>"
+ "Bought: 4 template calls at $2.88.\n"
+ "template call0 \n"
+ "template call1 t0 \n"
+ "template call2 t0 t1 t0 \n"
+ "template call3 t0 t1 t0 t2 t0 t1 t0 \n"
+ "Total: $11.52\n"
+ "</body>\n")
+ class TestUnicode(UnicodeTemplate):
+ template = u"""
+ \N{Greek Small Letter Pi} = $pi
+ """
+ expect(
+ unicode(TestUnicode(pi = 3.14)),
+ u"\N{Greek Small Letter Pi} = 3.14\n")
+ goterror = False
+ try:
+ class TestError(Template):
+ template = 'Cost of an error: $0'
+ except SyntaxError:
+ goterror = True
+ if not goterror:
+ print 'TestError failed'
+ ok = False
+ @stringfunction
+ def testBasic(name):
+ "Hello $name."
+ expect(testBasic('Henry'), "Hello Henry.")
+ @stringfunction
+ def testReps(a, count=5): r"""
+ ${{ if count == 0: return '' }}
+ $a${testReps(a, count - 1)}"""
+ expect(
+ testReps('foo'),
+ "foofoofoofoofoo")
+ @unicodefunction
+ def testUnicode(count=4): u"""
+ ${{ if not count: return '' }}
+ \N{BLACK STAR}${testUnicode(count - 1)}"""
+ expect(
+ testUnicode(count=10),
+ u"\N{BLACK STAR}" * 10)
+ if ok: print "OK"
diff --git a/modules/CIAO/DAnCE/bin/generate_plan.py b/modules/CIAO/DAnCE/bin/generate_plan.py
new file mode 100755
index 00000000000..cdbc3bb3df1
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/generate_plan.py
@@ -0,0 +1,90 @@
+#!/usr/bin/python
+import sys, os
+
+sys.path.append (os.getenv ("DANCE_ROOT"))
+
+
+def parse_args ():
+ from optparse import OptionParser
+
+ parser = OptionParser ("""usage %prog [options]
+ Note that this script is very simple. It assumes that the idl and mpc follow
+ canonical and predictable patterns.""")
+
+ parser.add_option ("-o", "--output", dest="output", action="store", type="string",
+ help="Output filename", default="Plan.cdp")
+ parser.add_option ("--home", dest="homes", action="append", type="string",
+ help="Home types to be included")
+ parser.add_option ("-c", "--component", dest="components", action="append",
+ type="string", help="Component types to be included")
+ parser.add_option ("--homed-component", dest="homed_components", action="append",
+ type="string", help="Homed component types to be included")
+ parser.add_option ("-u", "--uuid", dest="uuid", action="store",
+ type="string", help="UUID for the generated plan")
+ parser.add_option ("-n", "--namespace", dest="namespace", action="store", default="",
+ type="string", help="IDL namespace any components may be in")
+
+ (options, arguments) = parser.parse_args ()
+
+ return (options, arguments)
+
+def main ():
+ (opts, args) = parse_args ()
+
+ # compset = set (opts.homes) | set (opts.components) | set (homed_components)
+
+ from PythonDAnCE import generator
+ retval = ""
+ retval += generator.header.template (opts.uuid)
+
+ artifacts = {}
+
+ if opts.namespace != "":
+ opts.namespace += "_"
+
+ #implementations
+ if opts.homes is not None:
+ for item in opts.homes:
+ retval += generator.home_impl.template (item, opts.namespace)
+ artifacts[item] = 1
+
+ if opts.homed_components is not None:
+ for item in opts.homed_components:
+ retval += generator.homed_comp_impl.template (item)
+ artifacts[item] = 1
+
+ if opts.components is not None:
+ for item in opts.components:
+ retval += generator.comp_impl.template (item, opts.namespace)
+ artifacts[item] = 1
+
+ #instances
+ if opts.homes is not None:
+ for item in opts.homes:
+ retval += generator.home_inst.template (item)
+
+ if opts.homed_components is not None:
+ for item in opts.homed_components:
+ retval += generator.homed_comp_inst.template (item)
+
+ if opts.components is not None:
+ for item in opts.components:
+ retval += generator.comp_inst.template (item, "", "", "NodeOne")
+
+ #artifacts
+ if artifacts is not None:
+ for item in artifacts.keys():
+ retval += generator.artifact.template(item)
+
+ retval += generator.footer.template ()
+
+ outfile = open (opts.output, 'w')
+ outfile.write (retval)
+ outfile.close ()
+
+
+if __name__ == "__main__":
+ main ()
+
+
+
diff --git a/modules/CIAO/DAnCE/docs/OMG-DnC-Tutorial.ppt b/modules/CIAO/DAnCE/docs/OMG-DnC-Tutorial.ppt
new file mode 100644
index 00000000000..6fa2139f3f7
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/OMG-DnC-Tutorial.ppt
Binary files differ
diff --git a/modules/CIAO/DAnCE/docs/schema/06-04-02.xsd b/modules/CIAO/DAnCE/docs/schema/06-04-02.xsd
new file mode 100644
index 00000000000..60b5c0ce54c
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/06-04-02.xsd
@@ -0,0 +1,1010 @@
+<!-- CORBA Component Model (CCM) Specification -->
+<!-- Version 4.0 -->
+<!-- Object Management Group, Inc. -->
+<!-- Document Number formal/2006-04-01 -->
+<!-- Chapter 16: XMI for CCM -->
+
+<!-- Copyright 2002, Laboratoire d’Informatique Fond de Lille -->
+<!-- Copyright 2006, Object Management Group, Inc. -->
+
+<!-- The companies listed above have granted to the Object -->
+<!-- Management Group, Inc. (OMG) a nonexlcusive, royalty-free, -->
+<!-- paid up, worldwide license to copy and distribute this -->
+<!-- document and to modify this document and distribute copies -->
+<!-- of the modified version. Each of the copyright holders -->
+<!-- listed above has agreed that no person shall be deemed to -->
+<!-- have infringed the copyright in the included material of -->
+<!-- any such copyright holder by reason of having used the -->
+<!-- specification set forth herein or having conformed any -->
+<!-- computer software to the specification. -->
+
+<!-- This XML was defined by the XML Metadata Interchange -->
+<!-- (XMI) version 2 specification on the Deployment PSM for -->
+<!-- CCM, which is derived from PIM in the Deployment and -->
+<!-- Configuration specification. -->
+
+
+<xsd:schema
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment"
+ >
+ <xsd:import namespace="http://www.omg.org/XMI"/>
+ <xsd:complexType name="Any">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Any" type="Deployment:Any"/>
+ <xsd:complexType name="DataType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+ <xsd:element name="enum" type="Deployment:EnumType"/>
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataType" type="Deployment:DataType"/>
+ <xsd:complexType name="DataValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <xsd:element name="opaque" type="xsd:base64Binary"/>
+ <xsd:element name="objref" type="xsd:string"/>
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <xsd:element name="fixed" type="xsd:string"/>
+ <xsd:element name="any" type="Deployment:Any"/>
+ <xsd:element name="typecode" type="Deployment:DataType"/>
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <xsd:element name="discriminator" type="Deployment:DataValue"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element name="boxedValue" type="Deployment:DataValue"/>
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataValue" type="Deployment:DataValue"/>
+ <xsd:complexType name="EnumType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="EnumType" type="Deployment:EnumType"/>
+ <xsd:complexType name="ObjrefType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/>
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/>
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="FixedType" type="Deployment:FixedType"/>
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArrayType" type="Deployment:ArrayType"/>
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SequenceType" type="Deployment:SequenceType"/>
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AliasType" type="Deployment:AliasType"/>
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructType" type="Deployment:StructType"/>
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/>
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueType" type="Deployment:ValueType"/>
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/>
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionType" type="Deployment:UnionType"/>
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/>
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedValue" type="Deployment:NamedValue"/>
+ <xsd:complexType name="Bridge">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connect" type="Deployment:Interconnect"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Bridge" type="Deployment:Bridge"/>
+ <xsd:complexType name="Interconnect">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Bridge"/>
+ <xsd:element name="connect" type="Deployment:Node"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Interconnect" type="Deployment:Interconnect"/>
+ <xsd:complexType name="Node">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Interconnect"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Node" type="Deployment:Node"/>
+ <xsd:complexType name="Resource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Resource" type="Deployment:Resource"/>
+ <xsd:complexType name="SharedResource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SharedResource" type="Deployment:SharedResource"/>
+ <xsd:complexType name="Domain">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="interconnect" type="Deployment:Interconnect"/>
+ <xsd:element name="bridge" type="Deployment:Bridge"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Domain" type="Deployment:Domain"/>
+ <xsd:complexType name="ResourceAllocation">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="elementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ResourceAllocation" type="Deployment:ResourceAllocation"/>
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/>
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/>
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element name="localityConstraint" type="Deployment:PlanLocality"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/>
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:complexType name="PlanLocality">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="constraint" type="Deployment:PlanLocalityKind"/>
+ <xsd:element name="constrainedInstance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanLocality" type="Deployment:PlanLocality"/>
+ <xsd:complexType name="Capability">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Capability" type="Deployment:Capability"/>
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="exclusiveProvider" type="xsd:string"/>
+ <xsd:element name="exclusiveUser" type="xsd:string"/>
+ <xsd:element name="optional" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/>
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="idlFile" type="xsd:string"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="nodeExecParameter" type="Deployment:Property"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:element name="componentExecParameter" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element name="localityConstraint" type="Deployment:Locality"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:complexType name="ComponentImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="capability" type="Deployment:Capability"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredUUID" type="xsd:string"/>
+ <xsd:element name="requiredName" type="xsd:string"/>
+ <xsd:element name="requiredType" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/>
+ <xsd:complexType name="ComponentPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:complexType name="ComponentUsageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentUsageDescription" type="Deployment:ComponentUsageDescription"/>
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="resourcePort" type="xsd:string"/>
+ <xsd:element name="componentPort" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:complexType name="ComponentPackageImport">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageImport" type="Deployment:ComponentPackageImport"/>
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:complexType name="Locality">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="constraint" type="Deployment:LocalityKind"/>
+ <xsd:element name="constrainedInstance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Locality" type="Deployment:Locality"/>
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/>
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="dynamic" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/>
+ <xsd:complexType name="Requirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Requirement" type="Deployment:Requirement"/>
+ <xsd:complexType name="Property">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Property" type="Deployment:Property"/>
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredType" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/>
+ <xsd:complexType name="ToplevelPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="package" type="Deployment:PackageConfiguration"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ToplevelPackageDescription" type="Deployment:ToplevelPackageDescription"/>
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_fixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="PlanLocalityKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="SameProcess"/>
+ <xsd:enumeration value="DifferentProcess"/>
+ <xsd:enumeration value="NoConstraint"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="LocalityKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="SameNodeAnyProcess"/>
+ <xsd:enumeration value="SameNodeSameProcess"/>
+ <xsd:enumeration value="SameNodeDifferentProcess"/>
+ <xsd:enumeration value="DifferentNode"/>
+ <xsd:enumeration value="DifferentProcess"/>
+ <xsd:enumeration value="NoConstraint"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:element name="Deployment">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="Deployment:Any"/>
+ <xsd:element ref="Deployment:DataType"/>
+ <xsd:element ref="Deployment:DataValue"/>
+ <xsd:element ref="Deployment:EnumType"/>
+ <xsd:element ref="Deployment:ObjrefType"/>
+ <xsd:element ref="Deployment:BoundedStringType"/>
+ <xsd:element ref="Deployment:FixedType"/>
+ <xsd:element ref="Deployment:ArrayType"/>
+ <xsd:element ref="Deployment:SequenceType"/>
+ <xsd:element ref="Deployment:AliasType"/>
+ <xsd:element ref="Deployment:StructType"/>
+ <xsd:element ref="Deployment:StructMemberType"/>
+ <xsd:element ref="Deployment:ValueType"/>
+ <xsd:element ref="Deployment:ValueMemberType"/>
+ <xsd:element ref="Deployment:UnionType"/>
+ <xsd:element ref="Deployment:UnionMemberType"/>
+ <xsd:element ref="Deployment:NamedValue"/>
+ <xsd:element ref="Deployment:Bridge"/>
+ <xsd:element ref="Deployment:Interconnect"/>
+ <xsd:element ref="Deployment:Node"/>
+ <xsd:element ref="Deployment:Resource"/>
+ <xsd:element ref="Deployment:SharedResource"/>
+ <xsd:element ref="Deployment:Domain"/>
+ <xsd:element ref="Deployment:ResourceAllocation"/>
+ <xsd:element ref="Deployment:PlanPropertyMapping"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:PlanConnectionDescription"/>
+ <xsd:element ref="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element ref="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element ref="Deployment:DeploymentPlan"/>
+ <xsd:element ref="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:PlanLocality"/>
+ <xsd:element ref="Deployment:Capability"/>
+ <xsd:element ref="Deployment:ComponentPropertyDescription"/>
+ <xsd:element ref="Deployment:ComponentPortDescription"/>
+ <xsd:element ref="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element ref="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element ref="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element ref="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element ref="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element ref="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="Deployment:ComponentPackageReference"/>
+ <xsd:element ref="Deployment:ComponentPackageDescription"/>
+ <xsd:element ref="Deployment:ComponentUsageDescription"/>
+ <xsd:element ref="Deployment:PackagedComponentImplementation"/>
+ <xsd:element ref="Deployment:NamedImplementationArtifact"/>
+ <xsd:element ref="Deployment:ImplementationRequirement"/>
+ <xsd:element ref="Deployment:ComponentPackageImport"/>
+ <xsd:element ref="Deployment:PackageConfiguration"/>
+ <xsd:element ref="Deployment:Locality"/>
+ <xsd:element ref="Deployment:RequirementSatisfier"/>
+ <xsd:element ref="Deployment:SatisfierProperty"/>
+ <xsd:element ref="Deployment:Requirement"/>
+ <xsd:element ref="Deployment:Property"/>
+ <xsd:element ref="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element ref="Deployment:ImplementationDependency"/>
+ <xsd:element ref="Deployment:ToplevelPackageDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
+
diff --git a/modules/CIAO/DAnCE/docs/schema/Basic_Deployment_Data.xsd b/modules/CIAO/DAnCE/docs/schema/Basic_Deployment_Data.xsd
new file mode 100644
index 00000000000..2a6715e642b
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/Basic_Deployment_Data.xsd
@@ -0,0 +1,430 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:import namespace="http://www.omg.org/XMI"
+ schemaLocation="XMI.xsd" />
+
+ <xsd:complexType name="IdRef">
+ <xsd:attributeGroup ref="xmi:LinkAttribs" />
+ </xsd:complexType>
+
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:NCName"> <!-- std says xsd:string -->
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_fixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="DataType">
+ <xsd:sequence>
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+ <xsd:choice minOccurs="0">
+ <xsd:element name="enum" type="Deployment:EnumType" />
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ </xsd:choice>
+
+<!--
+@@ not supported now..
+
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+
+ <xsd:element name="union" type="Deployment:UnionType"/>
+-->
+ </xsd:sequence>
+ <xsd:attribute ref="xmi:id" />
+ </xsd:complexType>
+
+ <xsd:complexType name="DataValue">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <!-- xsd:element name="opaque" type="xsd:base64Binary"/ -->
+ <!-- <xsd:element name="objref" type="xsd:string"/> -->
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <!-- <xsd:element name="fixed" type="xsd:string"/> -->
+ <!-- <xsd:element name="any" type="Deployment:Any"/> -->
+ <!-- <xsd:element name="typecode" type="Deployment:DataType"/> -->
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <!-- <xsd:element name="discriminator" type="Deployment:DataValue"/> -->
+ <!-- <xsd:element name="value" type="Deployment:DataValue"/> -->
+ <!-- <xsd:element name="boxedValue" type="Deployment:DataValue"/> -->
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="AliasType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="EnumType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructMemberType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueMemberType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="NamedValue">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="SequenceType">
+ <xsd:sequence>
+ <xsd:element name="bound" type="xsd:unsignedInt" minOccurs="0" />
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Any">
+ <xsd:sequence>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Property">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- End of base definitions. -->
+
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="dynamic" type="xsd:boolean" />
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Resource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="property" type="Deployment:SatisfierProperty" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Requirement">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- Deployment -->
+
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="node" type="xsd:string" />
+ <xsd:element name="location" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute ref="xmi:id" />
+ </xsd:complexType>
+
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="Deployment:IdRef" minOccurs="0" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription -->
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute ref="xmi:id" />
+ </xsd:complexType>
+
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="Deployment:IdRef"/> <!-- MonolithicDeploymentDescription -->
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute ref="xmi:id" />
+ </xsd:complexType>
+
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ <xsd:enumeration value="ExtendedPort"/>
+ <xsd:enumeration value="MirrorPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@MAJO: Hack - specific/supported types should be required. -->
+ <xsd:element name="specificType" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="supportedType" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="provider" type="xsd:boolean"/>
+ <xsd:element name="exclusiveProvider" type="xsd:boolean"/>
+ <xsd:element name="exclusiveUser" type="xsd:boolean"/>
+ <xsd:element name="optional" type="xsd:boolean"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="templateParam" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="Deployment:IdRef"/> <!-- InstanceDeploymentDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:sequence>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:boolean"/>
+ <xsd:element name="portName" type="xsd:string" minOccurs="0" />
+ <xsd:element name="supportedType" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:sequence>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- Implementation -->
+
+ <xsd:complexType name="Capability">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="property" type="Deployment:SatisfierProperty" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind" minOccurs="0"/>
+ <xsd:element name="resourcePort" type="xsd:string" minOccurs="0" />
+ <xsd:element name="componentPort" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:IdRef"/> <!-- SubcomponentInstantiationDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:simpleType name="PlanLocalityKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="SameProcess"/>
+ <xsd:enumeration value="DifferentProcess"/>
+ <xsd:enumeration value="NoConstraint"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="PlanLocality">
+ <xsd:sequence>
+ <xsd:element name="constraint" type="Deployment:PlanLocalityKind"/>
+ <xsd:element name="constrainedInstance" type="Deployment:IdRef" maxOccurs="unbounded" /> <!-- InstanceDeploymentDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/CIAOEvents.xsd b/modules/CIAO/DAnCE/docs/schema/CIAOEvents.xsd
new file mode 100644
index 00000000000..645d7a6e530
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/CIAOEvents.xsd
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema targetNamespace="http://www.dre.vanderbilt.edu/CIAOEvents"
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/CIAOEvents"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ attributeFormDefault="unqualified">
+
+ <xsd:element name="CIAOEvents" type="CIAO:CIAOEventsDef">
+ <xsd:annotation>
+ <xsd:documentation>
+ Root element for defining all the pub/sub services configuration
+ used by a DeploymentPlan.
+ A CIAO:Events document should reside in a separate file.
+ A DeploymentPlan can refer to one or more CIAO:Events file names
+ using the "infoProperty" tag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+<!-- =============================================================== -->
+<!-- CIAO Event Service Deployment Description -->
+<!-- =============================================================== -->
+
+ <xsd:simpleType name="EventServiceType">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="EC"/>
+ <xsd:enumeration value="RTEC"/>
+ <xsd:enumeration value="NOTIFY"/>
+ <xsd:enumeration value="RTNOTIFY"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="CIAOEventsDef">
+ <xsd:sequence>
+ <xsd:element name="eventServiceConfiguration" type="CIAO:EventServiceDescription" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="EventServiceDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="type" type="CIAO:EventServiceType"/>
+ <xsd:element name="svc_cfg_file" type="xsd:string"/>
+ <xsd:element name="filter" type="CIAO:Filter" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="addr_serv" type="CIAO:AddressServerDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="udp_sender" type="CIAO:UDPSenderDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="udp_receiver" type="CIAO:UDPReceiverDescription" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+<!-- =============================================================== -->
+<!-- CIAO Event Filter Description -->
+<!-- =============================================================== -->
+
+ <xsd:simpleType name="FilterType">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="CONJUNCTION"/>
+ <xsd:enumeration value="DISJUNCTION"/>
+ <xsd:enumeration value="LOGICAL_AND"/>
+ <xsd:enumeration value="NEGATE"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="Filter">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="CIAO:FilterType"/>
+ <xsd:element name="source" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+<!-- =============================================================== -->
+<!-- CIAO Event Service Federation Description -->
+<!-- =============================================================== -->
+
+ <xsd:complexType name="AddressServerDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="port" type="xsd:unsignedShort"/>
+ <xsd:element name="address" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="UDPSenderDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="addr_serv_id" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="UDPReceiverDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="addr_serv_id" type="xsd:string" minOccurs="0" />
+ <xsd:element name="is_multicast" type="xsd:boolean"/>
+ <xsd:element name="listen_port" type="xsd:unsignedShort"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/CIAOServerResources.xsd b/modules/CIAO/DAnCE/docs/schema/CIAOServerResources.xsd
new file mode 100644
index 00000000000..7a62a0e6eab
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/CIAOServerResources.xsd
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema targetNamespace="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ attributeFormDefault="unqualified">
+
+ <xsd:element name="ServerResources" type="CIAO:ServerResourcesDef">
+ <xsd:annotation>
+ <xsd:documentation>
+ Root element for defining all the resources used by a DeploymentPlan.
+ A CIAO:ServerResources document should reside in a separate file.
+ A DeploymentPlan can refer to one or more CIAO:ServerResources file names
+ using the "infoProperty" tag.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+
+ <xsd:complexType name="ServerResourcesDef">
+ <xsd:sequence>
+ <xsd:element name="cmdline" type="CIAO:ServerCmdlineOptions" minOccurs="0"/>
+ <xsd:element name="svcconf" type="CIAO:ACESvcConf" minOccurs="0"/>
+ <xsd:element name="orbConfigs" type="CIAO:ORBConfigs" />
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+<!-- =============================================================== -->
+
+ <xsd:complexType name="ServerCmdlineOptions">
+ <xsd:annotation>
+ <xsd:documentation>
+ Just a list of argv's that should be appended to the command
+ line used to start up the NodeApplication.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="arg" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- ================================================================ -->
+
+ <xsd:complexType name="ACESvcConf">
+ <xsd:annotation>
+ <xsd:documentation>
+ Contains either a pointer to a svc.conf file, or the actual
+ content of the svc.conf file required to configure the
+ NodeApplication.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice>
+ <!-- Specify the URI of a svc.conf file. -->
+ <xsd:element name="uri" type="xsd:string"/>
+
+ <!-- If we agree to use only XML based svc.conf "file", we will
+ support inlined svcconf entries here. If that will be the
+ case, we still need to convert ACE_Svc_Conf DTD to schema. -->
+ <!--
+ <xsd:element name="inline" type="ACE_Svc_Conf"/>
+ -->
+ </xsd:choice>
+ </xsd:complexType>
+
+<!-- ========================================================================= -->
+
+ <xsd:complexType name="ORBConfigs">
+ <xsd:annotation>
+ <xsd:documentation>
+ Contains the shared resources the component ORB must support
+ and all available policySets that components installed under
+ the ORB can request.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="resources" type="CIAO:ORBResources"
+ minOccurs="0"/>
+ <xsd:element name="policySet" type="CIAO:PolicySet"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- ========================================================================= -->
+
+ <xsd:complexType name="ORBResources">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="threadpool" type="CIAO:ThreadpoolDef"/>
+ <xsd:element name="threadpoolWithLanes" type="CIAO:ThreadpoolWithLanesDef"/>
+ <xsd:element name="connectionBands" type="CIAO:ConnectionBandsDef"/>
+ <!-- Other ORB-wide resources that must be allocated by the ORB -->
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:simpleType name="Priority">
+ <xsd:restriction base="xsd:int">
+ <xsd:minInclusive value="0"/>
+ <xsd:maxInclusive value="32767"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="ThreadpoolDef">
+ <xsd:sequence>
+ <xsd:element name="stacksize" type="xsd:unsignedLong"/>
+ <xsd:element name="static_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="dynamic_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="default_priority" type="CIAO:Priority"/>
+ <xsd:element name="allow_request_buffering" type="xsd:boolean"/>
+ <xsd:element name="max_buffered_requests" type="xsd:unsignedLong"/>
+ <xsd:element name="max_request_buffered_size" type="xsd:unsignedLong"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="ThreadpoolWithLanesDef">
+ <xsd:sequence>
+ <xsd:element name="threadpoolLane" type="CIAO:ThreadpoolLaneDef"
+ maxOccurs="unbounded"/>
+ <xsd:element name="stacksize" type="xsd:unsignedLong" />
+ <xsd:element name="allow_borrowing" type="xsd:boolean"/>
+ <xsd:element name="allow_request_buffering" type="xsd:boolean"/>
+ <xsd:element name="max_buffered_requests" type="xsd:unsignedLong"/>
+ <xsd:element name="max_request_buffered_size" type="xsd:unsignedLong"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/> <!-- Threadpool ID should be
+ referenced by individual policies
+ in the policysets below -->
+ </xsd:complexType>
+
+ <xsd:complexType name="ThreadpoolLaneDef">
+ <xsd:sequence>
+ <xsd:element name="static_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="dynamic_threads" type="xsd:unsignedLong"/>
+ <xsd:element name="priority" type="CIAO:Priority"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectionBandsDef">
+ <xsd:annotation>
+ <xsd:documentation>
+ This is only used to provide a ORB-wide view of all connection bands.
+ The ORB doesn't really need to "create" this resource.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="band" type="CIAO:PriorityBandDef" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="PriorityBandDef">
+ <xsd:sequence>
+ <xsd:element name="low" type="xsd:int"/>
+ <xsd:element name="high" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+<!-- ========================================================================= -->
+
+ <xsd:complexType name="PolicySet">
+ <xsd:annotation>
+ <xsd:documentation>
+ Contains a set of CORBA Policies that can be applied to a
+ component instance at once. We should eventually expand this
+ list to incorporate all the policies defined in
+ ciaopolicy.xs. I'm focusing on the RT aspects for now.
+
+ The ID of a policy set should be referenced by the component
+ instances in a DeploymentPlan document under the
+ "deployedResource" tag.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="priorityModel" type="CIAO:PriorityModelPolicyDef"/>
+ <xsd:element name="nwpriorityModel" type="CIAO:NWPriorityModelPolicyDef"/>
+ <xsd:element name="cnwpriorityModel" type="CIAO:CNWPriorityModelPolicyDef"/>
+ <xsd:element name="threadpool" type="xsd:IDREF"/>
+ <xsd:element name="priorityBandedConnection" type="xsd:IDREF"/>
+ </xsd:choice>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="PriorityModel">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="SERVER_DECLARED"/>
+ <xsd:enumeration value="CLIENT_PROPAGATED"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NWPriorityModel">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="SERVER_DECLARED_NWPRIORITY"/>
+ <xsd:enumeration value="CLIENT_PROPAGATED_NWPRIORITY"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="PriorityModelPolicyDef">
+ <xsd:sequence>
+ <xsd:element name="priority_model" type="CIAO:PriorityModel"/>
+ </xsd:sequence>
+ <xsd:attribute name="server_priority" type="CIAO:Priority"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="NWPriorityModelPolicyDef">
+ <xsd:sequence>
+ <xsd:element name="nw_priority_model" type="CIAO:NWPriorityModel"/>
+ <xsd:element name="request_dscp" type="xsd:long"/>
+ <xsd:element name="reply_dscp" type="xsd:long"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="CNWPriorityModelPolicyDef">
+ <xsd:sequence>
+ <xsd:element name="request_dscp" type="xsd:long"/>
+ <xsd:element name="reply_dscp" type="xsd:long"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/Deployment.xsd b/modules/CIAO/DAnCE/docs/schema/Deployment.xsd
new file mode 100644
index 00000000000..591aa588d74
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/Deployment.xsd
@@ -0,0 +1,29 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd"/>
+ <xsd:include schemaLocation="cpd.xsd"/>
+ <xsd:include schemaLocation="ccd.xsd"/>
+ <xsd:include schemaLocation="cdd.xsd"/>
+ <xsd:include schemaLocation="cdp.xsd"/>
+ <xsd:include schemaLocation="cid.xsd"/>
+ <xsd:include schemaLocation="iad.xsd"/>
+ <xsd:include schemaLocation="pcd.xsd"/>
+ <xsd:include schemaLocation="toplevel.xsd"/>
+
+
+<!-- Top-level elements. -->
+
+ <xsd:element name="domain" type="Deployment:Domain"/>
+ <xsd:element name="DeploymentPlan" type="Deployment:deploymentPlan"/>
+ <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" />
+ <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/Modified_Deployment.xsd b/modules/CIAO/DAnCE/docs/schema/Modified_Deployment.xsd
new file mode 100644
index 00000000000..65f5eb81d1e
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/Modified_Deployment.xsd
@@ -0,0 +1,826 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_wfixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="DataType">
+ <xsd:choice>
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+<!--
+@@ not used, what for?
+
+ <xsd:element name="enum" type="Deployment:EnumType"/>
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+-->
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="DataValue">
+ <xsd:choice>
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <!-- xsd:element name="opaque" type="xsd:base64Binary"/ -->
+ <xsd:element name="objref" type="xsd:string"/>
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <xsd:element name="fixed" type="xsd:string"/>
+
+<!--
+@@ recursive
+ <xsd:element name="any" type="Deployment:Any"/>
+-->
+
+ <xsd:element name="typecode" type="Deployment:DataType"/>
+
+<!--
+@@ recursive
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <xsd:element name="discriminator" type="Deployment:DataValue"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element name="boxedValue" type="Deployment:DataValue"/>
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+-->
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Any">
+ <xsd:sequence>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Property">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+<!-- End of base definitions. -->
+
+ <xsd:complexType name="Node">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+<!--
+@@ recursive, not used
+ <xsd:element name="connection" type="Deployment:Interconnect"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+-->
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Resource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SharedResource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Domain">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0"/>
+ <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/>
+<!--
+@@ recursive, not used
+ <xsd:element name="interconnect" type="Deployment:Interconnect"/>
+ <xsd:element name="bridge" type="Deployment:Bridge"/>
+-->
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Requirement">
+ <xsd:sequence>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+<!-- Deployment -->
+
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="artifact" type="xsd:IDREF" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription -->
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <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="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:NCName">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="exclusiveProvider" type="xsd:string"/>
+ <xsd:element name="exclusiveUser" type="xsd:string"/>
+ <xsd:element name="optional" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="idlFile" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription" maxOccurs="unbounded"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added a href attribute
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="xsd:IDREF"/> <!-- InstanceDeploymentDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:sequence>
+ <xsd:element name="location" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:sequence>
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:sequence>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded" />
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- potentially recursive, not used
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ -->
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+
+
+<!-- Implementation -->
+
+
+ <xsd:complexType name="Capability">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive NIA->IAD->NIA -->
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="1"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+
+ <!-- @@ There probably should be only one location? -->
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added a href attribute
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:sequence>
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="resourcePort" type="xsd:string"/>
+ <xsd:element name="componentPort" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:sequence>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/>
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD -->
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentPackageDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="1"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added href
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:sequence>
+ <xsd:element name="requiredUUID" type="xsd:string"/>
+ <xsd:element name="requiredName" type="xsd:string"/>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="package" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:sequence>
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="xsd:IDREF"/> <!-- SubcomponentInstantiationDescription -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:sequence>
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:sequence>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" maxOccurs="unbounded"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ComponentImplementationDescription">
+ <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded"
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/>
+ <xsd:choice>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ </xsd:choice>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ <xsd:element name="capability" type="Deployment:Capability" minOccurs="0"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <!-- @@mxiong: added href
+ when adding config_handler support
+ for repoMan
+ -->
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+
+<!-- Package -->
+
+
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+<!--
+@@ recursive, not used
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+-->
+
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:sequence>
+ <xsd:element name="package" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+<!-- Top-level elements. -->
+
+
+ <xsd:element name="domain" type="Deployment:Domain"/>
+ <xsd:element name="deploymentPlan" type="Deployment:DeploymentPlan"/>
+ <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" />
+ <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+
+
+
+<!-- VAULT
+
+Place for strange things. Nobody knows what they are for...
+
+-->
+
+<!--
+
+ <xsd:complexType name="EnumType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ObjrefType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Bridge">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connect" type="Deployment:Interconnect"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Interconnect">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Bridge"/>
+ <xsd:element name="connect" type="Deployment:Node"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+<!--
+
+ This type is not referenced anywhere.
+
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/README.html b/modules/CIAO/DAnCE/docs/schema/README.html
new file mode 100644
index 00000000000..d810c8a6065
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/README.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Contents of $CIAO_ROOT/docs/schema</title>
+</head>
+
+<body>
+<h1>Contents of $CIAO_ROOT/docs/schema</h1>
+The schema in this directory are all based on the new Deployment and
+Configuration spec. As part of our work on DAnCE we have tried to
+subset and normalize the schema so that our developers, and tools
+would be able to parse and use the information effectively.
+
+The following table illustrates the meaning and use of the various
+schemata in this directory:
+<table width="100%" border=1>
+ <tr valign=top>
+ <td><b>Spec_Defined_Deployment.xsd</b></td>
+ <td>This is the schema file from the spec which is unaltered. This
+ is just for reference. CIAO and DAnCE will not be using this file
+ directly.
+ </td>
+ </tr>
+ <tr valign=top>
+ <td><b>Spec_Defined_XMI.xsd</b></td>
+ <td>The OMG spec defined schema file uses definitions from another
+ specification called the XMI spec which is part of the OMG
+ specification suite. This schema file is again for reference
+ without any edits.
+ </td>
+ </tr>
+ <tr valign=top>
+ <td><b>ccd.xsd, cdd.xsd, cdp.xsd, cid.xsd, cpd.xsd, iad.xsd,
+ pcd.xsd and toplevel.xcd</b></td>
+ <td> Descriptors that will be used by DAnCE. Section 5.5.3 of the
+ Deployment and Configuration spec talks about the various
+ descriptors that are part of the package. The schema files are
+ broken down in accordance with the suggested descriptor format in
+ the section mentioned above.
+ </td>
+ </tr>
+ <tr valign=top">
+ <td><b>Deployment.xsd</b></td>
+ <td> The schema file that will be used by the applications in
+ their descriptors. Applications need not use Deployment.xsd, but
+ using this is encouraged for portability of their intance
+ documents.</td>
+ </tr>
+ <tr valign=top">
+ <td><b>Modified_Deployment.xsd</b></td>
+ <td> This schema is modified from the original spec defined
+ schema. It is a bit simplified with different sections that makes
+ things easier for the developer to read and digest the
+ information. Not used within DAnCE.</td>
+ </tr>
+ <tr valign=top">
+ <td><b>unused_elements.xsd</b></td>
+ <td> Schema elements that are not used within the OMG's schema and
+ the ones that CIAo and DAnCedoesn't support.</td>
+ </tr>
+</table>
+</body>
+</html>
+
diff --git a/modules/CIAO/DAnCE/docs/schema/SANet_Network.xsd b/modules/CIAO/DAnCE/docs/schema/SANet_Network.xsd
new file mode 100644
index 00000000000..d614528b481
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/SANet_Network.xsd
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.vanderbilt.edu/SANet SANet_Network.xsd" xmlns:SANet="http://www.vanderbilt.edu/SANet"
+ targetNamespace="http://www.vanderbilt.edu/SANet" elementFormDefault="qualified">
+ <!-- Simple types. -->
+ <xs:simpleType name="NodeID">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PortID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="TaskCost">
+ <xs:restriction base="xs:double" />
+ </xs:simpleType>
+ <xs:simpleType name="CondUtil">
+ <xs:restriction base="xs:double" />
+ </xs:simpleType>
+ <xs:simpleType name="CondKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ENVIRON" />
+ <xs:enumeration value="SYSTEM" />
+ <xs:enumeration value="DATA" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Probability">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LinkWeight">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="-1" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="MultFactor">
+ <xs:restriction base="xs:double">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Complex types corresponding to IDL structures.
+ (nodes, links, and network). -->
+ <xs:complexType name="TaskNode">
+ <xs:sequence>
+ <xs:element name="nodeID" type="SANet:NodeID" />
+ <xs:element name="name" type="xs:string" default="" />
+ <xs:element name="priorProb" type="SANet:Probability" />
+ <xs:element name="attenFactor" type="SANet:MultFactor" default="1" />
+ <xs:element name="cost" type="SANet:TaskCost" default="0" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CondNode">
+ <xs:sequence>
+ <xs:element name="nodeID" type="SANet:NodeID" />
+ <xs:element name="name" type="xs:string" default="" />
+ <xs:element name="probTrue" type="SANet:Probability" default="0" />
+ <xs:element name="utility" type="SANet:CondUtil" default="0" />
+ <xs:element name="kind" type="SANet:CondKind" default="ENVIRON" />
+ <xs:element name="attenFactor" type="SANet:MultFactor" default="1" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PrecondLink">
+ <xs:sequence>
+ <xs:element name="condID" type="SANet:NodeID" />
+ <xs:element name="taskID" type="SANet:NodeID" />
+ <xs:element name="portID" type="SANet:PortID" />
+ <xs:element name="trueProb" type="SANet:Probability" />
+ <xs:element name="falseProb" type="SANet:Probability" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="EffectLink">
+ <xs:sequence>
+ <xs:element name="taskID" type="SANet:NodeID" />
+ <xs:element name="condID" type="SANet:NodeID" />
+ <xs:element name="portID" type="SANet:PortID" />
+ <xs:element name="weight" type="SANet:LinkWeight" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Network">
+ <xs:sequence>
+ <xs:element name="defaultAttenFactor" type="SANet:MultFactor" default="1" />
+ <xs:element name="defaultTaskCost" type="SANet:TaskCost" default="0" />
+ <xs:element name="defaultCondUtil" type="SANet:CondUtil" default="0" />
+ <xs:element name="defaultCondProbTrue" type="SANet:Probability" default="0" />
+ <xs:element name="linkThresh" type="SANet:LinkWeight" default="0" />
+ <xs:element name="taskNode" type="SANet:TaskNode" maxOccurs="unbounded" />
+ <xs:element name="condNode" type="SANet:CondNode" maxOccurs="unbounded" />
+ <xs:element name="precondLink" type="SANet:PrecondLink" maxOccurs="unbounded" />
+ <xs:element name="effectLink" type="SANet:EffectLink" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <!-- Top-level network element. -->
+ <xs:element name="network" type="SANet:Network" />
+</xs:schema> \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/docs/schema/ServerResourceUsage.txt b/modules/CIAO/DAnCE/docs/schema/ServerResourceUsage.txt
new file mode 100644
index 00000000000..d8fc47ca7b3
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/ServerResourceUsage.txt
@@ -0,0 +1,119 @@
+ How to use CIAOServerResources.xsd
+
+Assuming we store two CIAO:ServerResources documents in two XML files
+called "RTLinuxServerConfig.csr" and "RTwIN32ServerConfig.csr"
+respectively. Two things need to happen in order to use the
+PolicySet's defined in these files. First, we need to tell the DnC
+tools what are all the CIAOServerResources files a DeploymentPlan
+needs. This can easily be done by enumerating all these file in the
+<infoProperty> element under the <DeploymentPlan>. For example, the
+following XML document snippet shows a DeploymentPlan will reference
+to two aforementioned CIAO:ServerResources files. The property name
+"CIAOServerResourceRef" is a CIAO-specific extension that signifies
+this need. The values of these properties simply specify the
+filenames.
+
+
+ <infoProperty>
+ <name>CIAOServerResourceRef</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>RTLinuxServerConfig.csr</string>
+ </value>
+ </value>
+
+ <name>CIAOServerResourceRef</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>RTWin32ServerConfig.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+Second, we can now use the policy sets defined in these files by
+associating a policy set with the entity the policy set will be
+applied on. Currently, only associations with component instances are
+supported. A component instance in deployment plan can specify the
+policy set it wishes to be instantiated with. A PolicySet is
+referenced by its name and the CIAO:ServerResources name.
+
+ <deploymentplan>
+ ....
+ <instance ...>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>here_we_insert_the_name_defined_in_CIAO:ServerResources</resourcename>
+ <property>
+//
+// name could be CIAO:InstancePolicy or CIAO:ReceptaclePolicy.
+// Here we show an example of an CIAO::InstancePolicy.
+//
+ <name>CIAO:InstancePolicy</name>
+ <value>
+ <type>tk_string</type>
+ <value>
+ <string>here_we_insert_the_PolicySet_name_defined_in_the_ServerResources</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+// Now we show an example of a CIAO:ReceptaclePolicy.
+//
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>here_we_insert_the_name_defined_in_CIAO:ServerResources</resourcename>
+//
+// First we specify that we are going to define a receptacle policy.
+//
+ <property>
+//
+// Note the name of the policy.
+//
+ <name>CIAO:ReceptaclePolicy</name>
+ <value>
+ <type>tk_string</type>
+ <value>
+ <string>here_we_insert_the_PolicySet_name_defined_in_the_ServerResources</string>
+ </value>
+ </value>
+ </property>
+//
+// Now we specify the receptacle (using the receptacle name) that is going to
+// be associated with this policy.
+//
+ <property>
+ <name>receptacle name from the .ccd file</name>
+ <value>
+ <type>tk_string</type>
+ <value>
+ <string>here_we_insert_the_PolicySet_name_defined_in_the_ServerResources</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+ </instance>
+ </instance>
+ </deploymentplan>
+
+If only the name of the CIAO:ServerResources is specified, we are
+using it as a collocation constraint. In this case, the
+<deployedResource> will contain no <property> sub-element. Component
+instances with different <resourceName> values will be deployed to the
+same target node with different ServerResources names. DAnCE should
+create two differnet NodeApplication on the same node.
+
+Likewise, specifying different CIAO:PolicySet IDs will force component
+instances to be deployed into different containers (if they have the
+same target node and ServerResource ID.)
+
diff --git a/modules/CIAO/DAnCE/docs/schema/Spec_Defined_Deployment.xsd b/modules/CIAO/DAnCE/docs/schema/Spec_Defined_Deployment.xsd
new file mode 100644
index 00000000000..a59a47f1360
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/Spec_Defined_Deployment.xsd
@@ -0,0 +1,897 @@
+<xsd:schema
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment"
+ >
+ <xsd:import namespace="http://www.omg.org/XMI"/>
+ <xsd:complexType name="Any">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Any" type="Deployment:Any"/>
+ <xsd:complexType name="DataType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="kind" type="Deployment:TCKind"/>
+ <xsd:element name="enum" type="Deployment:EnumType"/>
+ <xsd:element name="objref" type="Deployment:ObjrefType"/>
+ <xsd:element name="boundedString" type="Deployment:BoundedStringType"/>
+ <xsd:element name="fixed" type="Deployment:FixedType"/>
+ <xsd:element name="array" type="Deployment:ArrayType"/>
+ <xsd:element name="sequence" type="Deployment:SequenceType"/>
+ <xsd:element name="alias" type="Deployment:AliasType"/>
+ <xsd:element name="struct" type="Deployment:StructType"/>
+ <xsd:element name="value" type="Deployment:ValueType"/>
+ <xsd:element name="union" type="Deployment:UnionType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataType" type="Deployment:DataType"/>
+ <xsd:complexType name="DataValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="long" type="xsd:int"/>
+ <xsd:element name="ushort" type="xsd:unsignedShort"/>
+ <xsd:element name="ulong" type="xsd:unsignedInt"/>
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="boolean" type="xsd:boolean"/>
+ <xsd:element name="octet" type="xsd:unsignedByte"/>
+ <xsd:element name="opaque" type="xsd:base64Binary"/>
+ <xsd:element name="objref" type="xsd:string"/>
+ <xsd:element name="enum" type="xsd:string"/>
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="longlong" type="xsd:long"/>
+ <xsd:element name="ulonglong" type="xsd:unsignedLong"/>
+ <xsd:element name="longdouble" type="xsd:double"/>
+ <xsd:element name="fixed" type="xsd:string"/>
+ <xsd:element name="any" type="Deployment:Any"/>
+ <xsd:element name="typecode" type="Deployment:DataType"/>
+ <xsd:element name="element" type="Deployment:DataValue"/>
+ <xsd:element name="discriminator" type="Deployment:DataValue"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element name="boxedValue" type="Deployment:DataValue"/>
+ <xsd:element name="member" type="Deployment:NamedValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DataValue" type="Deployment:DataValue"/>
+ <xsd:complexType name="EnumType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="EnumType" type="Deployment:EnumType"/>
+ <xsd:complexType name="ObjrefType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/>
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/>
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="FixedType" type="Deployment:FixedType"/>
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArrayType" type="Deployment:ArrayType"/>
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SequenceType" type="Deployment:SequenceType"/>
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AliasType" type="Deployment:AliasType"/>
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructType" type="Deployment:StructType"/>
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/>
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueType" type="Deployment:ValueType"/>
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/>
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionType" type="Deployment:UnionType"/>
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/>
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedValue" type="Deployment:NamedValue"/>
+ <xsd:complexType name="Bridge">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connect" type="Deployment:Interconnect"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Bridge" type="Deployment:Bridge"/>
+ <xsd:complexType name="Interconnect">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Bridge"/>
+ <xsd:element name="connect" type="Deployment:Node"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Interconnect" type="Deployment:Interconnect"/>
+ <xsd:complexType name="Node">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="connection" type="Deployment:Interconnect"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="resource" type="Deployment:Resource"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Node" type="Deployment:Node"/>
+ <xsd:complexType name="Resource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Resource" type="Deployment:Resource"/>
+ <xsd:complexType name="SharedResource">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SharedResource" type="Deployment:SharedResource"/>
+ <xsd:complexType name="Domain">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="interconnect" type="Deployment:Interconnect"/>
+ <xsd:element name="bridge" type="Deployment:Bridge"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Domain" type="Deployment:Domain"/>
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/>
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:complexType name="PlanSubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:complexType name="PlanConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/>
+ <xsd:complexType name="InstanceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:complexType name="MonolithicDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:complexType name="ArtifactDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="node" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:complexType name="DeploymentPlan">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/>
+ <xsd:complexType name="ResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/>
+ <xsd:complexType name="InstanceResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:complexType name="ConnectionResourceDeploymentDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="targetName" type="xsd:string"/>
+ <xsd:element name="requirementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="resourceValue" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:complexType name="Capability">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Capability" type="Deployment:Capability"/>
+ <xsd:complexType name="ComponentPropertyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:complexType name="ComponentPortDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="provider" type="xsd:string"/>
+ <xsd:element name="exclusiveProvider" type="xsd:string"/>
+ <xsd:element name="exclusiveUser" type="xsd:string"/>
+ <xsd:element name="optional" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/>
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specificType" type="xsd:string"/>
+ <xsd:element name="supportedType" type="xsd:string"/>
+ <xsd:element name="idlFile" type="xsd:string"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="execParameter" type="Deployment:Property"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/>
+ <xsd:complexType name="SubcomponentPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:complexType name="AssemblyConnectionDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="deployRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="package" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:complexType name="ComponentImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="capability" type="Deployment:Capability"/>
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredUUID" type="xsd:string"/>
+ <xsd:element name="requiredName" type="xsd:string"/>
+ <xsd:element name="requiredType" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/>
+ <xsd:complexType name="ComponentPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:element name="infoProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/>
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="label" type="xsd:string"/>
+ <xsd:element name="UUID" type="xsd:string"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="reference" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/>
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/>
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/>
+ <xsd:complexType name="ImplementationRequirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/>
+ <xsd:element name="resourcePort" type="xsd:string"/>
+ <xsd:element name="componentPort" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/>
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/>
+ <xsd:complexType name="SatisfierProperty">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/>
+ <xsd:complexType name="Requirement">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Requirement" type="Deployment:Requirement"/>
+ <xsd:complexType name="Property">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:Any"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="Property" type="Deployment:Property"/>
+ <xsd:complexType name="ExternalReferenceEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="location" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:complexType name="ComponentExternalPortEndpoint">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="portName" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:complexType name="ImplementationDependency">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="requiredType" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/>
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="package" type="Deployment:PackageConfiguration"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="TopLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/>
+ <xsd:simpleType name="TCKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="tk_null"/>
+ <xsd:enumeration value="tk_void"/>
+ <xsd:enumeration value="tk_short"/>
+ <xsd:enumeration value="tk_long"/>
+ <xsd:enumeration value="tk_ushort"/>
+ <xsd:enumeration value="tk_ulong"/>
+ <xsd:enumeration value="tk_float"/>
+ <xsd:enumeration value="tk_double"/>
+ <xsd:enumeration value="tk_boolean"/>
+ <xsd:enumeration value="tk_char"/>
+ <xsd:enumeration value="tk_octet"/>
+ <xsd:enumeration value="tk_any"/>
+ <xsd:enumeration value="tk_TypeCode"/>
+ <xsd:enumeration value="tk_Principal"/>
+ <xsd:enumeration value="tk_objref"/>
+ <xsd:enumeration value="tk_struct"/>
+ <xsd:enumeration value="tk_union"/>
+ <xsd:enumeration value="tk_enum"/>
+ <xsd:enumeration value="tk_string"/>
+ <xsd:enumeration value="tk_sequence"/>
+ <xsd:enumeration value="tk_array"/>
+ <xsd:enumeration value="tk_alias"/>
+ <xsd:enumeration value="tk_except"/>
+ <xsd:enumeration value="tk_longlong"/>
+ <xsd:enumeration value="tk_ulonglong"/>
+ <xsd:enumeration value="tk_longdouble"/>
+ <xsd:enumeration value="tk_wchar"/>
+ <xsd:enumeration value="tk_wstring"/>
+ <xsd:enumeration value="tk_wfixed"/>
+ <xsd:enumeration value="tk_value"/>
+ <xsd:enumeration value="tk_value_box"/>
+ <xsd:enumeration value="tk_native"/>
+ <xsd:enumeration value="tk_abstract_interface"/>
+ <xsd:enumeration value="tk_local_interface"/>
+ <xsd:enumeration value="tk_component"/>
+ <xsd:enumeration value="tk_home"/>
+ <xsd:enumeration value="tk_event"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="ResourceUsageKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="InstanceUsesResource"/>
+ <xsd:enumeration value="ResourceUsesInstance"/>
+ <xsd:enumeration value="PortUsesResource"/>
+ <xsd:enumeration value="ResourceUsesPort"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="CCMComponentPortKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Facet"/>
+ <xsd:enumeration value="SimplexReceptacle"/>
+ <xsd:enumeration value="MultiplexReceptacle"/>
+ <xsd:enumeration value="EventEmitter"/>
+ <xsd:enumeration value="EventPublisher"/>
+ <xsd:enumeration value="EventConsumer"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="SatisfierPropertyKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Quantity"/>
+ <xsd:enumeration value="Capacity"/>
+ <xsd:enumeration value="Minimum"/>
+ <xsd:enumeration value="Maximum"/>
+ <xsd:enumeration value="Attribute"/>
+ <xsd:enumeration value="Selection"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:element name="Deployment">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="Deployment:Any"/>
+ <xsd:element ref="Deployment:DataType"/>
+ <xsd:element ref="Deployment:DataValue"/>
+ <xsd:element ref="Deployment:EnumType"/>
+ <xsd:element ref="Deployment:ObjrefType"/>
+ <xsd:element ref="Deployment:BoundedStringType"/>
+ <xsd:element ref="Deployment:FixedType"/>
+ <xsd:element ref="Deployment:ArrayType"/>
+ <xsd:element ref="Deployment:SequenceType"/>
+ <xsd:element ref="Deployment:AliasType"/>
+ <xsd:element ref="Deployment:StructType"/>
+ <xsd:element ref="Deployment:StructMemberType"/>
+ <xsd:element ref="Deployment:ValueType"/>
+ <xsd:element ref="Deployment:ValueMemberType"/>
+ <xsd:element ref="Deployment:UnionType"/>
+ <xsd:element ref="Deployment:UnionMemberType"/>
+ <xsd:element ref="Deployment:NamedValue"/>
+ <xsd:element ref="Deployment:Bridge"/>
+ <xsd:element ref="Deployment:Interconnect"/>
+ <xsd:element ref="Deployment:Node"/>
+ <xsd:element ref="Deployment:Resource"/>
+ <xsd:element ref="Deployment:SharedResource"/>
+ <xsd:element ref="Deployment:Domain"/>
+ <xsd:element ref="Deployment:PlanPropertyMapping"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:PlanConnectionDescription"/>
+ <xsd:element ref="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element ref="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element ref="Deployment:DeploymentPlan"/>
+ <xsd:element ref="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:Capability"/>
+ <xsd:element ref="Deployment:ComponentPropertyDescription"/>
+ <xsd:element ref="Deployment:ComponentPortDescription"/>
+ <xsd:element ref="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element ref="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element ref="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element ref="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element ref="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element ref="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="Deployment:ComponentPackageReference"/>
+ <xsd:element ref="Deployment:ComponentPackageDescription"/>
+ <xsd:element ref="Deployment:PackageConfiguration"/>
+ <xsd:element ref="Deployment:PackagedComponentImplementation"/>
+ <xsd:element ref="Deployment:NamedImplementationArtifact"/>
+ <xsd:element ref="Deployment:ImplementationRequirement"/>
+ <xsd:element ref="Deployment:RequirementSatisfier"/>
+ <xsd:element ref="Deployment:SatisfierProperty"/>
+ <xsd:element ref="Deployment:Requirement"/>
+ <xsd:element ref="Deployment:Property"/>
+ <xsd:element ref="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element ref="Deployment:ImplementationDependency"/>
+ <xsd:element ref="Deployment:TopLevelPackageDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/Spec_Defined_XMI.xsd b/modules/CIAO/DAnCE/docs/schema/Spec_Defined_XMI.xsd
new file mode 100644
index 00000000000..eac893f37c8
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/Spec_Defined_XMI.xsd
@@ -0,0 +1,35 @@
+<?xml version="1.0" ?>
+<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:attributeGroup name="IdentityAttribs">
+ <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="LinkAttribs">
+ <xsd:attribute name="href" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="ObjectAttribs">
+ <xsd:attributeGroup ref="xmi:IdentityAttribs" />
+ <xsd:attributeGroup ref="xmi:LinkAttribs" />
+ <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:complexType name="Extension">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="lax" />
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" />
+ <xsd:attributeGroup ref="xmi:ObjectAttribs" />
+ <xsd:attribute name="extender" type="xsd:string" use="optional" />
+ <xsd:attribute name="extenderID" type="xsd:string" use="optional" />
+ </xsd:complexType>
+ <xsd:element name="Extension" type="xmi:Extension" />
+ <xsd:complexType name="Any">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="skip" />
+ </xsd:choice>
+ <xsd:anyAttribute processContents="skip" />
+ </xsd:complexType>
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/Task_Map.xsd b/modules/CIAO/DAnCE/docs/schema/Task_Map.xsd
new file mode 100644
index 00000000000..2138f082d48
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/Task_Map.xsd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.vanderbilt.edu/SA-POP Task_Map.xsd" xmlns:SA-POP="http://www.vanderbilt.edu/SA-POP"
+ targetNamespace="http://www.vanderbilt.edu/SA-POP" elementFormDefault="qualified">
+ <!-- Simple types. -->
+ <xs:simpleType name="TaskID">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TaskImplID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ResourceID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ResourceKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="UNARY" />
+ <xs:enumeration value="DISCRETE" />
+ <xs:enumeration value="RESERVOIR" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ResourceValue">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ImplParamID">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ImplParamKind">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ImplParamValue">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="TimeValue">
+ <xs:restriction base="xs:int">
+ <!-- -1 indicates unknown/unconstrained time -->
+ <xs:minInclusive value="-1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Complex types corresponding to IDL structures.
+ (resources, parameters, implementations, associations, and task map) -->
+ <xs:complexType name="Resource">
+ <xs:sequence>
+ <xs:element name="resourceID" type="SA-POP:ResourceID" />
+ <xs:element name="kind" type="SA-POP:ResourceKind" default="DISCRETE" />
+ <xs:element name="capacity" type="SA-POP:ResourceValue" default="100" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ImplParam">
+ <xs:sequence>
+ <xs:element name="paramID" type="SA-POP:ImplParamID" />
+ <xs:element name="kind" type="SA-POP:ImplParamKind" />
+ <xs:element name="value" type="SA-POP:ImplParamValue" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaskImpl">
+ <xs:sequence>
+ <xs:element name="implID" type="SA-POP:TaskImplID" />
+ <xs:element name="param" type="SA-POP:ImplParam" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaskToImpl">
+ <xs:sequence>
+ <xs:element name="taskID" type="SA-POP:TaskID" />
+ <xs:element name="implID" type="SA-POP:TaskImplID" />
+ <xs:element name="duration" type="SA-POP:TimeValue" default="-1" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ImplToResource">
+ <xs:sequence>
+ <xs:element name="implID" type="SA-POP:TaskImplID" />
+ <xs:element name="resourceID" type="SA-POP:ResourceID" />
+ <xs:element name="utilization" type="SA-POP:ResourceValue" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="TaskMap">
+ <xs:sequence>
+ <xs:element name="taskImpl" type="SA-POP:TaskImpl" maxOccurs="unbounded" />
+ <xs:element name="resource" type="SA-POP:Resource" maxOccurs="unbounded" />
+ <xs:element name="taskToImpl" type="SA-POP:TaskToImpl" maxOccurs="unbounded" />
+ <xs:element name="implToResource" type="SA-POP:ImplToResource" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ <!-- Top-level task map element. -->
+ <xs:element name="taskMap" type="SA-POP:TaskMap"></xs:element>
+</xs:schema> \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/docs/schema/XMI.xsd b/modules/CIAO/DAnCE/docs/schema/XMI.xsd
new file mode 100644
index 00000000000..afb17f9d3b5
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/XMI.xsd
@@ -0,0 +1,39 @@
+<?xml version="1.0" ?>
+<!-- This is a slightly modified XMI schema that has some elements not currently supported by XSC commented out -->
+<xsd:schema targetNamespace="http://www.omg.org/XMI"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:attributeGroup name="IdentityAttribs">
+ <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="LinkAttribs">
+ <xsd:attribute name="href" type="xsd:string" use="optional" />
+ <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" />
+ </xsd:attributeGroup>
+ <xsd:attributeGroup name="ObjectAttribs">
+ <xsd:attributeGroup ref="xmi:IdentityAttribs" />
+ <xsd:attributeGroup ref="xmi:LinkAttribs" />
+ <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" />
+ <!-- <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" /> -->
+ </xsd:attributeGroup>
+ <xsd:complexType name="Extension">
+<!-- <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="lax" />
+ </xsd:choice> -->
+ <xsd:attribute ref="xmi:id" />
+ <xsd:attributeGroup ref="xmi:ObjectAttribs" />
+ <xsd:attribute name="extender" type="xsd:string" use="optional" />
+ <xsd:attribute name="extenderID" type="xsd:string" use="optional" />
+ </xsd:complexType>
+ <xsd:element name="extension" type="xmi:Extension" />
+<!-- <xsd:complexType name="Any">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:any processContents="skip" />
+ </xsd:choice>
+ <xsd:anyAttribute processContents="skip" />
+ </xsd:complexType> -->
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/ccd.xsd b/modules/CIAO/DAnCE/docs/schema/ccd.xsd
new file mode 100644
index 00000000000..fcdac711b5a
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/ccd.xsd
@@ -0,0 +1,27 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+
+ <xsd:complexType name="ComponentInterfaceDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0"/>
+ <!-- @@ MAJO : HACK - SpecificType and SupportedType should be required! -->
+ <xsd:element name="specificType" type="xsd:string" minOccurs="0" />
+ <xsd:element name="supportedType" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="idlFile" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="port" type="Deployment:ComponentPortDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" />
+ </xsd:complexType>
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/cdd.xsd b/modules/CIAO/DAnCE/docs/schema/cdd.xsd
new file mode 100644
index 00000000000..3fe64120bfd
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/cdd.xsd
@@ -0,0 +1,60 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+
+ <xsd:complexType name="Domain">
+ <xsd:sequence>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/>
+ <xsd:element name="interconnect" type="Deployment:Interconnect" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="bridge" type="Deployment:Bridge" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Bridge">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="connect" type="Deployment:Interconnect" maxOccurs="unbounded" />
+ <xsd:element name="resource" type="Deployment:Resource" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Interconnect">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="connection" type="Deployment:Bridge" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="connect" type="Deployment:Node" maxOccurs="unbounded" />
+ <xsd:element name="resource" type="Deployment:Resource" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="Node">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="connection" type="Deployment:Interconnect" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="resource" type="Deployment:Resource" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SharedResource">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="node" type="Deployment:Node"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/docs/schema/cdp.xsd b/modules/CIAO/DAnCE/docs/schema/cdp.xsd
new file mode 100644
index 00000000000..882d460736c
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/cdp.xsd
@@ -0,0 +1,43 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<xsd:include schemaLocation="ccd.xsd" />
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:sequence>
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- Note: name deploymentPlan should be DeploymentPlan, this is a hack to make XSC happy -->
+ <xsd:complexType name="deploymentPlan">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- @@todo: needs to be added. -->
+ <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="localityConstraint" type="Deployment:PlanLocality" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/ciaopolicy.xsd b/modules/CIAO/DAnCE/docs/schema/ciaopolicy.xsd
new file mode 100644
index 00000000000..93a7415c4b4
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/ciaopolicy.xsd
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema targetNamespace="www.dre.vanderbilt.edu"
+ xmlns:ciao="www.dre.vanderbilt.edu"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+ <xs:element name="orbPolicies">
+ <xs:annotation>
+ <xs:documentation>
+ The root element of the schema. Contains zero or more policies.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="policy" type="ciao:policyType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="policyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="rebindPolicy" type="ciao:rebindPolicyType" />
+ <xs:element name="syncScopePolicy" type="ciao:syncScopePolicyType" />
+ <xs:element name="requestPriorityPolicy" type="ciao:requestPriorityPolicyType" />
+ <xs:element name="replyPriorityPolicy" type="ciao:replyPriorityPolicyType" />
+ <xs:element name="requestStartTimePolicy" type="ciao:requestStartTimePolicyType" />
+ <xs:element name="requestEndTimePolicy" type="ciao:requestEndTimePolicyType" />
+ <xs:element name="replyStartTimePolicy" type="ciao:replyStartTimePolicyType" />
+ <xs:element name="replyEndTimePolicy" type="ciao:replyEndTimePolicyType" />
+ <xs:element name="relativeRequestTimeoutPolicy" type="ciao:relativeRequestTimeoutPolicyType" />
+ <xs:element name="relativeRoundtripPolicy" type="ciao:relativeRoundtripPolicyType" />
+ <xs:element name="routingPolicy" type="ciao:routingPolicyType" />
+ <xs:element name="maxHopsPolicy" type="ciao:maxHopsPolicyType" />
+ <xs:element name="queueOrderPolicy" type="ciao:queueOrderPolicyType" />
+ <xs:element name="priorityModelPolicy" type="ciao:priorityModelPolicyType" />
+ <xs:element name="threadPoolPolicy" type="ciao:threadPoolPolicyType" />
+ <xs:element name="serverProtocolPolicy" type="ciao:serverProtocolPolicyType" />
+ <xs:element name="clientProtocolPolicy" type="ciao:clientProtocolPolicyType" />
+ <xs:element name="privateConnectionPolicy" type="ciao:privateConnectionPolicyType" />
+ <xs:element name="priorityBandedPolicy" type="ciao:priorityBandedPolicyType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="policyBase" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ This is the base policy type. All policies
+ should be an extension of this type.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="override" type="ciao:overrideType" />
+ <xs:element name="scope" type="ciao:scopeType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="scopeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ORB" />
+ <xs:enumeration value="THREAD" />
+ <xs:enumeration value="OBJECT" />
+ <xs:enumeration value="POA" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="policyIDType">
+ <xs:annotation>
+ <xs:documentation>
+ This type represents the policy ID.
+ Need to add a restriction.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:integer">
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="overrideType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SET_OVERRIDE" />
+ <xs:enumeration value="ADD_OVERRIDE" />
+ </xs:restriction>
+ </xs:simpleType>
+
+
+
+ <!-- The following are extensions of policyBase, one each for each policy
+ we may want to group these into seperate schema documents, for our
+ own sanity.
+ -->
+ <!-- Policies 23 - 35 are defined in Messaging_No_Impl.pidl,
+ with the exception of policy 32, defined in Messaging_RT_Policy.pidl
+ and policy 24, defined in Messaging_SyncScope_Policy.pidl -->
+
+ <xs:complexType name="rebindPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the RebindPolicy type, ID 23
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="rebindMode" type="ciao:rebindModeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="23" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="rebindModeType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This is not strictly represented in the pidl as an enum,
+ but that appears to be the intent of the way it is declared.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="TRANSPARENT" />
+ <xs:enumeration value="NO_REBIND" />
+ <xs:enumeration value="NO_RECONNECT" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="syncScopePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a SyncScopePolicyType, ID 24
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="synchronization" type="ciao:syncScopeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="25" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="syncScopeType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This was not declared an enum in Messaging_SyncScope_Policy.pidl,
+ but from the declaration, that appears to be the intent.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SYNC_NONE" />
+ <xs:enumeration value="SYNC_WITH_TRANSPORT" />
+ <xs:enumeration value="SYNC_WITH_SERVER" />
+ <xs:enumeration value="SYNC_WITH_TARGET" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="requestPriorityPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RequestPriorityPolicy, ID 25
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityRange" type="ciao:priorityRangeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="25" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="replyPriorityPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a ReplyPriorityPolicy, ID 26
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityRange" type="ciao:priorityRangeType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="26" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="priorityRangeType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a PriorityRange struct defined in Messaging_No_Impl.pidl
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="min" type="xs:integer" />
+ <xs:element name="max" type="xs:integer" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="requestStartTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RequestStartTimePolicy, ID 27
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="startTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="27" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="requestEndTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RequestEndTimePolicy, ID 28
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="endTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="28" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="replyStartTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a ReplyStartTimePolicy, ID 29
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="startTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="29" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="replyEndTimePolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a ReplyEndTimePolicy, ID 30
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="endTime" type="ciao:utcTime" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="30" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="utcTime">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a TimeBase::UtcT struct, defined in tao/TimeBase.pidl
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="time" type="xs:integer" />
+ <xs:element name="inaccLo" type="xs:integer" />
+ <xs:element name="inaccHi" type="xs:integer" />
+ <xs:element name="tdf" type="xs:integer" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="relativeRequestTimeoutPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RelativeRequestTimeoutPolicy, ID 31.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="relativeExpiry" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="31" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="relativeRoundtripPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RelativeRoundtripPolicy, ID 32
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="relativeExpiry" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="32" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="routingPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a RoutingPolicy, ID 33
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="routingTypeRangeMin" type="ciao:routingType" />
+ <xs:element name="routingTypeRangeMax" type="ciao:routingType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="33" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="routingType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This is not explicitly set up as an enum in Messaging_No_Impl.pidl,
+ but that appears to be the intent from the declaration.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ROUTE_NONE" />
+ <xs:enumeration value="ROUTE_FORWARD" />
+ <xs:enumeration value="ROUTE_STORE_AND_FORWARD" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="maxHopsPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a MaxHopsPolicy, ID 34
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="maxHops" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="34" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="queueOrderPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents a QueueOrderPolicy, ID 35
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="allowedOrders" type="ciao:ordersType" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="35" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="ordersType">
+ <xs:annotation>
+ <xs:documentation>
+ Note: This is not explicitly declared to be an enum in Messaging_No_Impl.pidl,
+ but that appears to be the intent from the declaration.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ORDER_ANY" />
+ <xs:enumeration value="ORDER_TEMPORAL" />
+ <xs:enumeration value="ORDER_PRIORITY" />
+ <xs:enumeration value="ORDER_DEADLINE" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Policies 40 - 45 are defined in RTCORBA.pidl -->
+ <!-- priorityModelPolicy -->
+ <xs:complexType name="priorityModelPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the Priority Model Policy, ID 40
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityModel" type="ciao:priorityModelType" />
+ <xs:element name="serverPriority" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="40" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="priorityModelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CLIENT_PROPAGATED" />
+ <xs:enumeration value="SERVER_DECLARED" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- threadPoolPolicy -->
+
+ <xs:complexType name="threadPoolPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the ThreadPool policy, ID 41
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="threadPoolID" type="xs:integer" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="41" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- serverProtocolPolicy -->
+
+ <xs:complexType name="serverProtocolPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the Server Protocol policy, ID 42
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="protocol" type="ciao:protocolType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="42" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- clientProtocolPolicy -->
+ <xs:complexType name="clientProtocolPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the Client Protocol policy, ID 43
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="protocol" type="ciao:protocolType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="43" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- Protocol definitions for client and server Protocol properties types. -->
+ <xs:complexType name="protocolType">
+ <xs:sequence>
+ <xs:element name="protocolType" type="xs:integer" />
+ <xs:element name="orbProtocolProperties" type="ciao:protocolPropertyType" />
+ <xs:element name="transportProtocolProperties" type="ciao:protocolPropertyType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="protocolPropertyType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="tcpProtocolProperties" type="ciao:tcpProtocolPropertiesType" />
+ <xs:element name="giopProtocolProperties" type="ciao:giopProtocolPropertiesType" />
+ <xs:element name="unixDomainProtocolProperties" type="ciao:unixDomainProtocolPropertiesType" />
+ <xs:element name="sharedMemoryProtocolProperties" type="ciao:sharedMemoryProtocolPropertiesType" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="protocolPropertyBase" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Base type for all protocol properties.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="type" type="xs:string" use="required" />
+ </xs:complexType>
+
+ <xs:complexType name="tcpProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase">
+ <xs:sequence>
+ <xs:element name="sendBufferSize" type="xs:integer" />
+ <xs:element name="recvBufferSize" type="xs:integer" />
+ <xs:element name="keepAlive" type="xs:boolean" />
+ <xs:element name="dontRoute" type="xs:boolean" />
+ <xs:element name="noDelay" type="xs:boolean" />
+ <xs:element name="enableNetworkPriority" type="xs:boolean" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="giopProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase" />
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="unixDomainProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase">
+ <xs:sequence>
+ <xs:element name="sendBufferSize" type="xs:integer" />
+ <xs:element name="recvBufferSize" type="xs:integer" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="sharedMemoryProtocolPropertiesType">
+ <xs:complexContent>
+ <xs:extension base="ciao:protocolPropertyBase">
+ <xs:sequence>
+ <xs:element name="preallocateBufferSize" type="xs:integer" />
+ <xs:element name="mmapFilename" type="xs:string" />
+ <xs:element name="mmapLockname" type="xs:string" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- TODO: Provide other protocolProperties types -->
+
+ <!-- privateConnectionPolicy -->
+ <xs:complexType name="privateConnectionPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ privateConnectionPolicy extension of policyBase, ID 44
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <!-- empty -->
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="44" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <!-- priorityBandedPolicy -->
+ <xs:complexType name="priorityBandedPolicyType">
+ <xs:annotation>
+ <xs:documentation>
+ priorityBandedPolicy extension of policyBase, ID 45
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexContent>
+ <xs:extension base="ciao:policyBase">
+ <xs:sequence>
+ <xs:element name="priorityBand" type="ciao:priorityBandType"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ <xs:attribute name="typeID" type="xs:integer" use="required" fixed="45" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="priorityBandType">
+ <xs:annotation>
+ <xs:documentation>
+ Represents the PriorityBand struct for the priorityBandedPolicy element.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="low" type="xs:integer" />
+ <xs:element name="high" type="xs:integer" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+</xs:schema> \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/docs/schema/cid.xsd b/modules/CIAO/DAnCE/docs/schema/cid.xsd
new file mode 100644
index 00000000000..62cdc75e7c5
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/cid.xsd
@@ -0,0 +1,126 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+ <xsd:include schemaLocation="ccd.xsd" />
+ <xsd:include schemaLocation="iad.xsd" />
+ <xsd:include schemaLocation="pcd.xsd" />
+ <xsd:include schemaLocation="cpd.xsd" />
+
+ <xsd:complexType name="ComponentPackageReference">
+ <xsd:sequence>
+ <xsd:element name="requiredUUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="requiredName" type="xsd:string" minOccurs="0" />
+ <xsd:element name="requiredType" type="Deployment:ComponentInterfaceDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="SubcomponentInstantiationDescription">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription" minOccurs="0" />
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration" minOccurs="0" />
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="SubcomponentPropertyReference">
+ <xsd:sequence>
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:IdRef"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="AssemblyPropertyMapping">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:simpleType name="LocalityKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="SameNodeAnyProcess"/>
+ <xsd:enumeration value="SameNodeSameProcess"/>
+ <xsd:enumeration value="SameNodeDifferentProcess"/>
+ <xsd:enumeration value="DifferentNode"/>
+ <xsd:enumeration value="DifferentProcess"/>
+ <xsd:enumeration value="NoConstraint"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Locality needs to be implemented -->
+ <xsd:complexType name="Locality">
+ <xsd:sequence>
+ <xsd:element name="constraint" type="Deployment:LocalityKind"/>
+ <xsd:element name="constrainedInstance" type="Deployment:IdRef"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentAssemblyDescription">
+ <xsd:sequence>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="locality" type="Deployment:Locality" minOccurs="0" maxOccurs="unbounded" /> <!-- @@todo: needs to be implemented -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="MonolithicImplementationDescription">
+ <xsd:sequence>
+ <xsd:element name="nodeExecParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="componentExecParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <!-- @@ MAJO : Hack: Implements should be required. -->
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:choice>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ </xsd:choice>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="capability" type="Deployment:Capability" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectorImplementationDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <!-- @@ MAJO : Hack: Implements should be required. -->
+ <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:choice>
+ <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/>
+ </xsd:choice>
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="capability" type="Deployment:Capability" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/cpd.xsd b/modules/CIAO/DAnCE/docs/schema/cpd.xsd
new file mode 100644
index 00000000000..b4313af65bf
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/cpd.xsd
@@ -0,0 +1,49 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="cid.xsd" />
+ <xsd:include schemaLocation="ccd.xsd" />
+
+ <xsd:complexType name="PackagedComponentImplementation">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD -->
+ <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ComponentPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <!-- @@MAJO - This is a hack, realizes is required. -->
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="ConnectorPackageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <!-- @@MAJO - This is a hack, realizes is required. -->
+ <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="implementation" type="Deployment:ConnectorImplementationDescription" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/modules/CIAO/DAnCE/docs/schema/iad.xsd b/modules/CIAO/DAnCE/docs/schema/iad.xsd
new file mode 100644
index 00000000000..2f910b5d333
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/iad.xsd
@@ -0,0 +1,32 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+
+ <xsd:complexType name="NamedImplementationArtifact">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <!-- @@ recursive NIA->IAD->NIA -->
+ <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ImplementationArtifactDescription">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:attribute name="href" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+</xsd:schema> \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/docs/schema/pcd.xsd b/modules/CIAO/DAnCE/docs/schema/pcd.xsd
new file mode 100644
index 00000000000..5c7772f7d85
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/pcd.xsd
@@ -0,0 +1,32 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="Basic_Deployment_Data.xsd" />
+ <xsd:include schemaLocation="cpd.xsd" />
+
+ <xsd:complexType name="ComponentPackageImport">
+ <xsd:sequence>
+ <xsd:element name="location" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="PackageConfiguration">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element name="label" type="xsd:string" minOccurs="0" />
+ <xsd:element name="UUID" type="xsd:string" minOccurs="0" />
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription" minOccurs="0" />
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration" minOccurs="0" />
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport" minOccurs="0" />
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference" minOccurs="0"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:element name="contentLocation" type="xsd:string" minOccurs="0"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/docs/schema/toplevel.xsd b/modules/CIAO/DAnCE/docs/schema/toplevel.xsd
new file mode 100644
index 00000000000..83e2feb999d
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/toplevel.xsd
@@ -0,0 +1,15 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+ <xsd:include schemaLocation="pcd.xsd" />
+
+ <xsd:complexType name="TopLevelPackageDescription">
+ <xsd:sequence>
+ <xsd:element name="package" type="Deployment:PackageConfiguration" minOccurs="0" maxOccurs="unbounded"/> <!-- changed -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/unused_06-04-02.xsd b/modules/CIAO/DAnCE/docs/schema/unused_06-04-02.xsd
new file mode 100644
index 00000000000..7d379ee7561
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/unused_06-04-02.xsd
@@ -0,0 +1,201 @@
+<xsd:schema
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment"
+ >
+ <xsd:import namespace="http://www.omg.org/XMI"/>
+
+
+
+
+
+
+
+
+ <xsd:complexType name="ObjrefType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/>
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/>
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="FixedType" type="Deployment:FixedType"/>
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ArrayType" type="Deployment:ArrayType"/>
+
+
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionType" type="Deployment:UnionType"/>
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/>
+
+
+
+
+ <xsd:complexType name="ResourceAllocation">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="elementName" type="xsd:string"/>
+ <xsd:element name="resourceName" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:Property"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ResourceAllocation" type="Deployment:ResourceAllocation"/>
+
+ <xsd:complexType name="ComponentUsageDescription">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/>
+ <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/>
+ <xsd:element name="selectRequirement" type="Deployment:Requirement"/>
+ <xsd:element name="configProperty" type="Deployment:Property"/>
+ <xsd:element name="referencedPackage" type="Deployment:ComponentPackageReference"/>
+ <xsd:element name="importedPackage" type="Deployment:ComponentPackageImport"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="ComponentUsageDescription" type="Deployment:ComponentUsageDescription"/>
+
+
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/>
+ <xsd:element name="Deployment">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="Deployment:Any"/>
+ <xsd:element ref="Deployment:DataType"/>
+ <xsd:element ref="Deployment:DataValue"/>
+ <xsd:element ref="Deployment:EnumType"/>
+ <xsd:element ref="Deployment:ObjrefType"/>
+ <xsd:element ref="Deployment:BoundedStringType"/>
+ <xsd:element ref="Deployment:FixedType"/>
+ <xsd:element ref="Deployment:ArrayType"/>
+ <xsd:element ref="Deployment:SequenceType"/>
+ <xsd:element ref="Deployment:AliasType"/>
+ <xsd:element ref="Deployment:StructType"/>
+ <xsd:element ref="Deployment:StructMemberType"/>
+ <xsd:element ref="Deployment:ValueType"/>
+ <xsd:element ref="Deployment:ValueMemberType"/>
+ <xsd:element ref="Deployment:UnionType"/>
+ <xsd:element ref="Deployment:UnionMemberType"/>
+ <xsd:element ref="Deployment:NamedValue"/>
+ <xsd:element ref="Deployment:Bridge"/>
+ <xsd:element ref="Deployment:Interconnect"/>
+ <xsd:element ref="Deployment:Node"/>
+ <xsd:element ref="Deployment:Resource"/>
+ <xsd:element ref="Deployment:SharedResource"/>
+ <xsd:element ref="Deployment:Domain"/>
+ <xsd:element ref="Deployment:ResourceAllocation"/>
+ <xsd:element ref="Deployment:PlanPropertyMapping"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:PlanSubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:PlanConnectionDescription"/>
+ <xsd:element ref="Deployment:InstanceDeploymentDescription"/>
+ <xsd:element ref="Deployment:MonolithicDeploymentDescription"/>
+ <xsd:element ref="Deployment:ArtifactDeploymentDescription"/>
+ <xsd:element ref="Deployment:DeploymentPlan"/>
+ <xsd:element ref="Deployment:ResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:InstanceResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:ConnectionResourceDeploymentDescription"/>
+ <xsd:element ref="Deployment:PlanLocality"/>
+ <xsd:element ref="Deployment:Capability"/>
+ <xsd:element ref="Deployment:ComponentPropertyDescription"/>
+ <xsd:element ref="Deployment:ComponentPortDescription"/>
+ <xsd:element ref="Deployment:ComponentInterfaceDescription"/>
+ <xsd:element ref="Deployment:ImplementationArtifactDescription"/>
+ <xsd:element ref="Deployment:MonolithicImplementationDescription"/>
+ <xsd:element ref="Deployment:AssemblyPropertyMapping"/>
+ <xsd:element ref="Deployment:SubcomponentPropertyReference"/>
+ <xsd:element ref="Deployment:SubcomponentPortEndpoint"/>
+ <xsd:element ref="Deployment:AssemblyConnectionDescription"/>
+ <xsd:element ref="Deployment:SubcomponentInstantiationDescription"/>
+ <xsd:element ref="Deployment:ComponentAssemblyDescription"/>
+ <xsd:element ref="Deployment:ComponentImplementationDescription"/>
+ <xsd:element ref="Deployment:ComponentPackageReference"/>
+ <xsd:element ref="Deployment:ComponentPackageDescription"/>
+ <xsd:element ref="Deployment:ComponentUsageDescription"/>
+ <xsd:element ref="Deployment:PackagedComponentImplementation"/>
+ <xsd:element ref="Deployment:NamedImplementationArtifact"/>
+ <xsd:element ref="Deployment:ImplementationRequirement"/>
+ <xsd:element ref="Deployment:ComponentPackageImport"/>
+ <xsd:element ref="Deployment:PackageConfiguration"/>
+ <xsd:element ref="Deployment:Locality"/>
+ <xsd:element ref="Deployment:RequirementSatisfier"/>
+ <xsd:element ref="Deployment:SatisfierProperty"/>
+ <xsd:element ref="Deployment:Requirement"/>
+ <xsd:element ref="Deployment:Property"/>
+ <xsd:element ref="Deployment:ExternalReferenceEndpoint"/>
+ <xsd:element ref="Deployment:ComponentExternalPortEndpoint"/>
+ <xsd:element ref="Deployment:ImplementationDependency"/>
+ <xsd:element ref="Deployment:ToplevelPackageDescription"/>
+ <xsd:element ref="xmi:Extension"/>
+ </xsd:choice>
+ <xsd:attribute ref="xmi:id" use="optional"/>
+ <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
+
+
diff --git a/modules/CIAO/DAnCE/docs/schema/unused_elements.xsd b/modules/CIAO/DAnCE/docs/schema/unused_elements.xsd
new file mode 100644
index 00000000000..c1200b088e9
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/unused_elements.xsd
@@ -0,0 +1,161 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ targetNamespace="http://www.omg.org/Deployment">
+
+<!-- VAULT
+
+Place for strange things. Nobody knows what they are for...
+
+-->
+
+<!--
+
+ <xsd:complexType name="EnumType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="ObjrefType">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="BoundedStringType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="FixedType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="digits" type="xsd:string"/>
+ <xsd:element name="scale" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="ArrayType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="length" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="SequenceType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bound" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="AliasType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="elementType" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="member" type="Deployment:StructMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="StructMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="modifier" type="xsd:string"/>
+ <xsd:element name="baseType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:ValueMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="ValueMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="visibility" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="typeId" type="xsd:string"/>
+ <xsd:element name="default" type="Deployment:UnionMemberType"/>
+ <xsd:element name="discriminatorType" type="Deployment:DataType"/>
+ <xsd:element name="member" type="Deployment:UnionMemberType"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:complexType name="UnionMemberType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="type" type="Deployment:DataType"/>
+ <xsd:element name="label" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="NamedValue">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="value" type="Deployment:DataValue"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanPropertyMapping">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="source" type="xsd:string"/>
+ <xsd:element name="externalName" type="xsd:string"/>
+ <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="PlanSubcomponentPropertyReference">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="propertyName" type="xsd:string"/>
+ <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+<!--
+
+ This type is not referenced anywhere.
+
+ <xsd:complexType name="RequirementSatisfier">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="resourceType" type="xsd:string"/>
+ <xsd:element name="property" type="Deployment:SatisfierProperty"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+-->
+
+</xsd:schema>
diff --git a/modules/CIAO/DAnCE/docs/schema/xsc-banner.cpp b/modules/CIAO/DAnCE/docs/schema/xsc-banner.cpp
new file mode 100644
index 00000000000..ecd90a877a6
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/xsc-banner.cpp
@@ -0,0 +1,11 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
diff --git a/modules/CIAO/DAnCE/docs/schema/xsc-banner.h b/modules/CIAO/DAnCE/docs/schema/xsc-banner.h
new file mode 100644
index 00000000000..30370e90f40
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/schema/xsc-banner.h
@@ -0,0 +1,17 @@
+/* $Id$
+ * This code was generated by the XML Schema Compiler.
+ *
+ * Changes made to this code will most likely be overwritten
+ * when the handlers are recompiled.
+ *
+ * If you find errors or feel that there are bugfixes to be made,
+ * please contact the current XSC maintainer:
+ * Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+// Fix for Borland compilers, which seem to have a broken
+// <string> include.
+#ifdef __BORLANDC__
+# include <string.h>
+#endif
+
diff --git a/modules/CIAO/DAnCE/docs/sources/dance-deployment.odg b/modules/CIAO/DAnCE/docs/sources/dance-deployment.odg
new file mode 100644
index 00000000000..e3ecdc92d29
--- /dev/null
+++ b/modules/CIAO/DAnCE/docs/sources/dance-deployment.odg
Binary files differ
diff --git a/modules/CIAO/DAnCE/lib/.empty b/modules/CIAO/DAnCE/lib/.empty
new file mode 100644
index 00000000000..eb0e403e06a
--- /dev/null
+++ b/modules/CIAO/DAnCE/lib/.empty
@@ -0,0 +1 @@
+This file keeps the directory around even when using cvs update -dP
diff --git a/modules/CIAO/DAnCE/tests/Bug_3832_Regression/run_test.pl b/modules/CIAO/DAnCE/tests/Bug_3832_Regression/run_test.pl
new file mode 100755
index 00000000000..54da4af1334
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Bug_3832_Regression/run_test.pl
@@ -0,0 +1,64 @@
+
+# $Id$
+
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status =0;
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+# Generated code file names
+my $TestCaseC_i = "test.log";
+
+$server_TestCaseC_i = $server->LocalFile($TestCaseC_i);
+$server->DeleteFile($TestCaseC_i);
+
+$ENV {'DANCE_LOG_LEVEL'} = 10;
+$ENV {'DANCE_LOG_FILE'} = 'test.log';
+
+$SV = $server->CreateProcess ("../../bin/dance_node_manager", "");
+
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+if ($server->WaitForFileTimed ($TestCaseC_i,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_TestCaseC_i\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$server_status = $SV->TerminateWaitKill ($server->ProcessStopWaitInterval());
+
+# Test for the presence of LM_ERROR
+$found = 0 ;
+open (I_FILE, "$server_TestCaseC_i") ;
+while( <I_FILE> ){
+ chomp ;
+ if( $_ =~ /LM_ERROR/ ){
+ $found = 1 ;
+ last ;
+ }
+}
+
+if( $found != 1 ){
+ print STDERR "ERROR: No logging found\n";
+ $status = 1 ;
+} else {
+ print STDERR "Found logging\n";
+}
+
+$server->DeleteFile($TestCaseC_i);
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl
new file mode 100644
index 00000000000..e01d7c16d2c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+/**
+ * @file
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * by-hand idl3 translation of sender components.
+ */
+
+#ifndef COMMAND_LINE_PASSAGE_IDL_
+#define COMMAND_LINE_PASSAGE_IDL_
+
+#include <Components.idl>
+
+module command_line_test
+{
+ component A
+ {
+ attribute long tc_max;
+ };
+};
+#endif
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc
new file mode 100644
index 00000000000..25cd697c345
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage.mpc
@@ -0,0 +1,124 @@
+// $Id$
+
+project(CommandlinePassage_idl_gen) : componentidldefaults {
+ after +=
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=COMMANDLINEPASSAGE_STUB_Export \
+ -Wb,stub_export_include=CommandlinePassage_stub_export.h \
+ -Wb,skel_export_macro=COMMANDLINEPASSAGE_SVNT_Export \
+ -Wb,skel_export_include=CommandlinePassage_svnt_export.h \
+ -Wb,exec_export_macro=COMMANDLINEPASSAGE_EXEC_Export \
+ -Wb,exec_export_include=CommandlinePassage_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ CommandlinePassage.idl
+ }
+}
+
+project(CommandlinePassage_lem_gen) : ciaoidldefaults {
+ after += CommandlinePassage_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=COMMANDLINEPASSAGE_EXEC_Export \
+ -Wb,stub_export_include=CommandlinePassage_exec_export.h \
+ -SS -Gxhst -I ..
+
+ IDL_Files {
+ CommandlinePassageE.idl
+ }
+}
+
+project(CommandlinePassage_lem_stub) : ccm_svnt {
+ after += CommandlinePassage_lem_gen CommandlinePassage_stub
+ libs += CommandlinePassage_stub
+ sharedname = CommandlinePassage_lem_stub
+ dynamicflags = COMMANDLINEPASSAGE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassageEC.cpp
+ }
+
+ Header_Files {
+ CommandlinePassageEC.h
+ CommandlinePassage_exec_export.h
+ }
+
+ Inline_Files {
+ CommandlinePassageEC.inl
+ }
+}
+
+project(CommandlinePassage_stub) : ccm_stub {
+ after += CommandlinePassage_idl_gen
+ libs +=
+ sharedname = CommandlinePassage_stub
+ dynamicflags = COMMANDLINEPASSAGE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassageC.cpp
+ }
+
+ Header_Files {
+ CommandlinePassageC.h
+ CommandlinePassage_stub_export.h
+ }
+
+ Inline_Files {
+ CommandlinePassageC.inl
+ }
+}
+
+project(CommandlinePassage_exec) : ciao_executor {
+ after += CommandlinePassage_lem_stub CommandlinePassage_stub
+ sharedname = CommandlinePassage_exec
+ libs += CommandlinePassage_stub CommandlinePassage_lem_stub
+ dynamicflags = COMMANDLINEPASSAGE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassage_exec.cpp
+ }
+
+ Header_Files {
+ CommandlinePassage_exec.h
+ CommandlinePassage_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(CommandlinePassage_svnt) : ciao_servant {
+ after += CommandlinePassage_lem_stub
+ sharedname = CommandlinePassage_svnt
+ libs += CommandlinePassage_stub CommandlinePassage_lem_stub
+ dynamicflags = COMMANDLINEPASSAGE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CommandlinePassageS.cpp
+ CommandlinePassage_svnt.cpp
+ }
+
+ Header_Files {
+ CommandlinePassageS.h
+ CommandlinePassage_svnt.h
+ CommandlinePassage_svnt_export.h
+ }
+
+ Inline_Files {
+ CommandlinePassageS.inl
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp
new file mode 100644
index 00000000000..bb39ab4e3a3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.cpp
@@ -0,0 +1,99 @@
+// -*- C++ -*-
+// $Id$
+
+#include "CommandlinePassage_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+#include "tao/Transport_Cache_Manager.h"
+#include "tao/Thread_Lane_Resources.h"
+
+namespace CIAO_command_line_test_A_Impl
+{
+ //============================================================
+ // Pulse generator
+ //============================================================
+
+ Component_exec_i::Component_exec_i (void)
+ : tc_max_ (3)
+ {
+ }
+
+ Component_exec_i::~Component_exec_i (void)
+ {
+ }
+
+ // Port operations.
+ void Component_exec_i::tc_max (CORBA::Long tc_max)
+ {
+ this->tc_max_ = tc_max;
+ }
+
+ CORBA::Long Component_exec_i::tc_max (void)
+ {
+ return this->tc_max_;
+ }
+ // Operations from Components::SessionComponent.
+ void
+ Component_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::command_line_test::CCM_A_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Component_exec_i::configuration_complete (void)
+ {
+ }
+
+ void
+ Component_exec_i::ccm_activate (void)
+ {
+ }
+
+ void
+ Component_exec_i::ccm_passivate (void)
+ {
+ }
+
+ void
+ Component_exec_i::ccm_remove (void)
+ {
+ try
+ {
+ long tc =
+ this->context_->get_CCM_object ()->_get_orb ()->orb_core ()->lane_resources ().transport_cache ().total_size ();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Transport cache : set <%d>, current_size <%d>\n"),
+ this->tc_max_, tc));
+ if (this->tc_max_ != tc)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR : Commandline parameter isn't not passed properly ")
+ ACE_TEXT ("should be <%d>, is <%d>\n"),
+ this->tc_max_, tc));
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR : Exception caught while checking transport cache.\n")));
+ }
+ }
+
+ extern "C" COMMANDLINEPASSAGE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Component_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Component_exec_i );
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h
new file mode 100644
index 00000000000..d8bcc90c430
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/CommandlinePassage_exec.h
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef COMPONENTLINPASSAGE_EXEC_H_
+#define COMPONENTLINPASSAGE_EXEC_H_
+
+
+#include "CommandlinePassageEC.h"
+
+#include /**/ "CommandlinePassage_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+
+#include <map>
+
+namespace CIAO_command_line_test_A_Impl
+{
+ class Component_exec_i
+ : public virtual A_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Component_exec_i (void);
+ virtual ~Component_exec_i (void);
+
+ virtual void
+ tc_max (CORBA::Long tc_max);
+
+ virtual CORBA::Long
+ tc_max (void);
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+ virtual void configuration_complete (void);
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ private:
+ ::command_line_test::CCM_A_Context_var context_;
+ CORBA::Long tc_max_;
+ };
+
+ extern "C" COMMANDLINEPASSAGE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Component_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp
new file mode 100644
index 00000000000..f692ab3a7eb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/Component.cdp
@@ -0,0 +1,153 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>Hello_DDS_Deployment_1</label>
+ <UUID>Hello_DDS_Deployment_1</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+
+ <implementation xmi:id="CompSvrImpl">
+ <name>CompSvr</name>
+ <source />
+ <artifact xmi:idref="CompSvrArt" />
+ <execParameter>
+ <name>edu.vanderbilt.dre.DAnCE.ImplementationType</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>edu.vanderbilt.dre.DAnCE.ServerExecutable</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="CommandlinePassageComponentImplementation">
+ <name>CommandlinePassageComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="CommandlinePassage_ExecArtifact" />
+ <artifact xmi:idref="CommandlinePassage_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Component_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_command_line_test_A_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>CommandlinePassage_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>CommandlinePassage_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="CompSvrInst">
+ <name>ComponentServerInstance</name>
+ <node>CommandlinePassageNode</node>
+ <source />
+ <implementation xmi:idref="CompSvrImpl" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.CIAO.ComponentServer.Args</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>-ORBSvcConfDirective "static Resource_Factory '-ORBConnectionCacheMax 33'"</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="CommandlinePassageComponentInstance">
+ <name>CommandlinePassageComponent</name>
+ <node>CommandlinePassageNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="CommandlinePassageComponentImplementation" />
+ <!-- set both edu.vanderbilt.dre.CIAO.ComponentServer.Args and
+ tc_max to the same number -->
+ <configProperty>
+ <name>tc_max</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>33</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="CompSvrArt">
+ <name>CompoSvrArtifactName</name>
+ <source />
+ <node />
+ <location>ciao_componentserver</location>
+ </artifact>
+ <artifact xmi:id="CommandlinePassage_ExecArtifact">
+ <name>CommandlinePassage_exec</name>
+ <source/>
+ <node/>
+ <location>CommandlinePassage_exec</location>
+ </artifact>
+ <artifact xmi:id="CommandlinePassage_SvntArtifact">
+ <name>CommandlinePassage_svnt</name>
+ <source/>
+ <node/>
+ <location>CommandlinePassage_svnt</location>
+ </artifact>
+ <artifact xmi:id="CommandlinePassage_StubArtifact">
+ <name>CommandlinePassage_stub</name>
+ <source/>
+ <node/>
+ <location>CommandlinePassage_stub</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="CompSvrInst" />
+ <constrainedInstance xmi:idref="CommandlinePassageComponentInstance" />
+ </localityConstraint>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl
new file mode 100755
index 00000000000..42e6eb574b4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/CommandlinePassage/run_test.pl
@@ -0,0 +1,245 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 1;
+@ports = ( 60001 );
+@iorbases = ( "CommandlinePassage.ior" );
+@iorfiles = 0;
+@nodenames = ( "CommandlinePassageNode" );
+
+# ior files other than daemon
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$status = 0;
+$cdp_file = "Component.cdp";
+
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('.');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('.');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('.');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('.');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('ciao_componentserver');
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService";
+
+ print "Run dance_node_manager with $d_param\n";
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+create_targets ();
+init_ior_files ();
+
+# Invoke naming service
+
+$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 1 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+
+print STDERR "Starting Naming Service with -m 1 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+$ns_status = $NS->Spawn ();
+
+if ($ns_status != 0) {
+ print STDERR "ERROR: Unable to execute the naming service\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+}
+
+$ns_running = 1;
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+# Invoke node daemon.
+print "Invoking node daemon\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemon\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$daemons_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
+$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+$em_status = $EM->Spawn ();
+
+if ($em_status != 0) {
+ print STDERR "ERROR: dance_execution_manager returned $em_status";
+ exit 1;
+}
+
+if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+# Invoke executor - start the application -.
+print "Invoking executor - launch the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://$ior_emfile");
+
+$pl_status = $E->SpawnWaitKill (2 * $tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+for ($i = 0; $i < $nr_daemon; ++$i) {
+ if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
+ $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
+ print STDERR "ERROR: The ior file of daemon $i could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+}
+
+print "Sleeping 10 seconds to allow task to complete\n";
+sleep (10);
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -q\n";
+
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $cdp_file -s");
+$pl_status = $E->SpawnWaitKill ($tg_executor->ProcessStartWaitInterval ());
+
+if ($pl_status != 0) {
+ print STDERR "ERROR: dance_plan_launcher returned $pl_status\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl
new file mode 100644
index 00000000000..6c38a2dd8f0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.idl
@@ -0,0 +1,15 @@
+// $Id$
+
+#include <Components.idl>
+
+module Simple
+{
+ component ProcessColocation
+ {
+ attribute string process_name;
+ };
+
+ home ProcessColocationHome manages ProcessColocation
+ {
+ };
+};
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc
new file mode 100644
index 00000000000..126ad174031
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation.mpc
@@ -0,0 +1,108 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl ProcessColocation"
+
+project(ProcessColocation_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PROCESSCOLOCATION_STUB_Export \
+ -Wb,stub_export_include=ProcessColocation_stub_export.h \
+ -Wb,skel_export_macro=PROCESSCOLOCATION_SVNT_Export \
+ -Wb,skel_export_include=ProcessColocation_svnt_export.h \
+ -Wb,exec_export_macro=PROCESSCOLOCATION_EXEC_Export \
+ -Wb,exec_export_include=ProcessColocation_exec_export.h
+
+ IDL_Files {
+ ProcessColocation.idl
+ }
+}
+
+project(ProcessColocation_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += ProcessColocation_idl_gen
+ idlflags += -Wb,export_macro=PROCESSCOLOCATION_EXEC_Export \
+ -Wb,export_include=ProcessColocation_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ProcessColocationE.idl
+ }
+}
+
+project(ProcessColocation_stub) : ccm_stub {
+ after += ProcessColocation_idl_gen
+ libs +=
+
+ sharedname = ProcessColocation_stub
+ dynamicflags = PROCESSCOLOCATION_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProcessColocationC.cpp
+ }
+
+ Header_Files {
+ ProcessColocationC.h
+ ProcessColocation_stub_export.h
+ }
+
+ Inline_Files {
+ ProcessColocationC.inl
+ }
+}
+
+project(ProcessColocation_exec) : ciao_executor {
+ after += ProcessColocation_lem_gen ProcessColocation_stub
+ sharedname = ProcessColocation_exec
+ libs += ProcessColocation_stub
+
+ dynamicflags = PROCESSCOLOCATION_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProcessColocationEC.cpp
+ ProcessColocation_exec.cpp
+ }
+
+ Header_Files {
+ ProcessColocationEC.h
+ ProcessColocation_exec.h
+ ProcessColocation_exec_export.h
+ }
+
+ Inline_Files {
+ ProcessColocationEC.inl
+ }
+}
+
+
+project(ProcessColocation_svnt) : ciao_servant {
+ after += ProcessColocation_exec
+ sharedname = ProcessColocation_svnt
+ libs += ProcessColocation_exec \
+ ProcessColocation_stub
+
+ dynamicflags = PROCESSCOLOCATION_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProcessColocationS.cpp
+ ProcessColocation_svnt.cpp
+ }
+
+ Header_Files {
+ ProcessColocationS.h
+ ProcessColocation_svnt.h
+ ProcessColocation_svnt_export.h
+ }
+
+ Inline_Files {
+ ProcessColocationS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp
new file mode 100644
index 00000000000..2783374c1a5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp
@@ -0,0 +1,189 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ProcessColocation_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "ace/Singleton.h"
+
+namespace
+{
+ class Colocation_Tester
+ {
+ public:
+ Colocation_Tester (void)
+ : value_ ("")
+ {
+ }
+
+ ACE_CString value (void)
+ {
+ return value_;
+ }
+
+ void value (const ACE_CString &s)
+ {
+ value_ = s;
+ }
+
+ private:
+ ACE_CString value_;
+ };
+
+ typedef ACE_Singleton <Colocation_Tester,
+ ACE_SYNCH_RECURSIVE_MUTEX> Colocation_Tester_Singleton;
+
+#define TESTER Colocation_Tester_Singleton::instance ()
+}
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ //============================================================
+ // Component Executor Implementation Class: ProcessColocation_exec_i
+ //============================================================
+
+ ProcessColocation_exec_i::ProcessColocation_exec_i (void)
+ {
+ }
+
+ ProcessColocation_exec_i::~ProcessColocation_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ char *
+ ProcessColocation_exec_i::process_name (void)
+ {
+ return CORBA::string_dup (this->process_name_.c_str ());
+ }
+
+ void
+ ProcessColocation_exec_i::process_name (
+ const char * process_name )
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Setting attr process name:%C\n",
+ process_name));
+
+ this->process_name_ = process_name;
+ TESTER->value (process_name);
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ void
+ ProcessColocation_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_ProcessColocation_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ ProcessColocation_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ ProcessColocation_exec_i::ccm_activate (void)
+ {
+ ACE_CString value = TESTER->value ();
+
+ if (this->process_name_ != value)
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "ProcessColocation_exec_i::ccm_activate - "
+ "Error: I am colocated with someone I shouldn't be. "
+ "My process value is %C, expected %C\n",
+ value.c_str (),
+ this->process_name_.c_str ()));
+ // throw CORBA::BAD_PARAM ();
+ }
+ }
+
+ void
+ ProcessColocation_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ ProcessColocation_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_ProcessColocation_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ProcessColocation_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: ProcessColocationHome_exec_i
+ //============================================================
+
+ ProcessColocationHome_exec_i::ProcessColocationHome_exec_i (void)
+ {
+ }
+
+ ProcessColocationHome_exec_i::~ProcessColocationHome_exec_i (void)
+ {
+ }
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ProcessColocationHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ ProcessColocation_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProcessColocationHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ProcessColocationHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h
new file mode 100644
index 00000000000..ed5e8d3d950
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.h
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.6.9 ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+// and
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1301
+
+#ifndef CIAO_PROCESSCOLOCATION_EXEC_H_
+#define CIAO_PROCESSCOLOCATION_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "ProcessColocationEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "ProcessColocation_exec_export.h"
+#include "tao/LocalObject.h"
+#include "ace/String_Base.h"
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ class PROCESSCOLOCATION_EXEC_Export ProcessColocation_exec_i
+ : public virtual ProcessColocation_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ProcessColocation_exec_i (void);
+ virtual ~ProcessColocation_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual char *
+ process_name (void);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ process_name (
+ const char * process_name);
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ private:
+ ACE_CString process_name_;
+ ::Simple::CCM_ProcessColocation_Context_var context_;
+ };
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_ProcessColocation_Impl (void);
+}
+
+namespace CIAO_Simple_ProcessColocation_Impl
+{
+ class PROCESSCOLOCATION_EXEC_Export ProcessColocationHome_exec_i
+ : public virtual ProcessColocationHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ProcessColocationHome_exec_i (void);
+
+ virtual ~ProcessColocationHome_exec_i (void);
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" PROCESSCOLOCATION_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProcessColocationHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl
new file mode 100644
index 00000000000..b9edea73e02
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#ifndef SIMPLE_USER_IDL
+#define SIMPLE_USER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component Progressive
+ {
+ uses Trigger trig_out;
+ provides Trigger trig_in;
+ };
+
+ home ProgressiveHome manages Progressive
+ {
+ };
+};
+
+#endif /*SIMPLE_USER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc
new file mode 100644
index 00000000000..8bea4ad4474
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleUser"
+
+project(SimpleCommon_Progressive_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PROGRESSIVE_STUB_Export \
+ -Wb,stub_export_include=Progressive_stub_export.h \
+ -Wb,skel_export_macro=PROGRESSIVE_SVNT_Export \
+ -Wb,skel_export_include=Progressive_svnt_export.h \
+ -Wb,exec_export_macro=PROGRESSIVE_EXEC_Export \
+ -Wb,exec_export_include=Progressive_exec_export.h \
+ -Gsv
+
+ IDL_Files {
+ Progressive.idl
+ }
+}
+
+project(SimpleCommon_Progressive_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_Progressive_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=PROGRESSIVE_EXEC_Export \
+ -Wb,export_include=Progressive_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ProgressiveE.idl
+ }
+}
+
+project(SimpleCommon_Progressive_stub) : ccm_stub {
+ after += SimpleCommon_Progressive_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = Progressive_stub
+ dynamicflags = PROGRESSIVE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProgressiveC.cpp
+ }
+
+ Header_Files {
+ ProgressiveC.h
+ Progressive_stub_export.h
+ }
+
+ Inline_Files {
+ ProgressiveC.inl
+ }
+}
+
+project(SimpleCommon_Progressive_exec) : ciao_executor {
+ after += SimpleCommon_Progressive_lem_gen SimpleCommon_Progressive_stub
+ sharedname = Progressive_exec
+ libs += Progressive_stub SimpleCommon_stub
+
+ dynamicflags = PROGRESSIVE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProgressiveEC.cpp
+ Progressive_exec.cpp
+ }
+
+ Header_Files {
+ ProgressiveEC.h
+ Progressive_exec.h
+ Progressive_exec_export.h
+ }
+
+ Inline_Files {
+ ProgressiveEC.inl
+ }
+}
+
+
+project(SimpleCommon_Progressive_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_Progressive_exec
+ sharedname = Progressive_svnt
+ libs += Progressive_exec \
+ Progressive_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = PROGRESSIVE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProgressiveS.cpp
+ Progressive_svnt.cpp
+ }
+
+ Header_Files {
+ ProgressiveS.h
+ Progressive_svnt.h
+ Progressive_svnt_export.h
+ }
+
+ Inline_Files {
+ ProgressiveS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp
new file mode 100644
index 00000000000..811fdc8f705
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.cpp
@@ -0,0 +1,215 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.7
+ * TAO and the TAO IDL Compiler have been developed by:
+ * Center for Distributed Object Computing
+ * Washington University
+ * St. Louis, MO
+ * USA
+ * http://www.cs.wustl.edu/~schmidt/doc-center.html
+ * and
+ * Distributed Object Computing Laboratory
+ * University of California at Irvine
+ * Irvine, CA
+ * USA
+ * and
+ * Institute for Software Integrated Systems
+ * Vanderbilt University
+ * Nashville, TN
+ * USA
+ * http://www.isis.vanderbilt.edu/
+ *
+ * Information about TAO is available at:
+ * http://www.cs.wustl.edu/~schmidt/TAO.html
+ **/
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1277
+
+#include "Progressive_exec.h"
+
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ //============================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //============================================================
+ Trigger_exec_i::Trigger_exec_i (bool &triggered,
+ ::Simple::CCM_Progressive_Context_ptr context)
+ : triggered_ (triggered),
+ context_ (context)
+ {
+ DANCE_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ DANCE_TRACE ("Trigger_exec_i::hello ()");
+ this->triggered_ = true;
+ // Your code here.
+ ACE_DEBUG ((LM_EMERGENCY, "Trigger_exec_i::hello - "
+ "Got the following information from trig port: %C\n",
+ hello));
+
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig_out ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Reference nil for port trig\n"));
+ return;
+ }
+
+ try
+ {
+ trig->hello ("Test successful; hello from SimpleUser.");
+ }
+ catch (CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Progressive_exec_i
+ //============================================================
+
+ Progressive_exec_i::Progressive_exec_i (void)
+ : triggered_ (false)
+ {
+ }
+
+ Progressive_exec_i::~Progressive_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes and port operations.
+
+ ::Simple::CCM_Trigger_ptr
+ Progressive_exec_i::get_trig_in (void)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::get_trig ()");
+ return new Trigger_exec_i (this->triggered_,
+ this->context_);
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Progressive_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_Progressive_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Progressive_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Progressive_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Progressive_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Progressive_exec_i::ccm_remove (void)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_remove ()");
+ if (!triggered_)
+ ACE_ERROR ((LM_EMERGENCY, "Error: My facet wasn't triggered!!\n"));
+ }
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_Progressive_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Progressive_exec_i);
+
+ return retval;
+ }
+}
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: ProgressiveHome_exec_i
+ //============================================================
+
+ ProgressiveHome_exec_i::ProgressiveHome_exec_i (void)
+ {
+ }
+
+ ProgressiveHome_exec_i::~ProgressiveHome_exec_i (void)
+ {
+ }
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ProgressiveHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Progressive_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProgressiveHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ ProgressiveHome_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h
new file mode 100644
index 00000000000..bb641913637
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/Progressive_exec.h
@@ -0,0 +1,141 @@
+// -*- C++ -*-
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.7
+ * TAO and the TAO IDL Compiler have been developed by:
+ * Center for Distributed Object Computing
+ * Washington University
+ * St. Louis, MO
+ * USA
+ * http://www.cs.wustl.edu/~schmidt/doc-center.html
+ * and
+ * Distributed Object Computing Laboratory
+ * University of California at Irvine
+ * Irvine, CA
+ * USA
+ * and
+ * Institute for Software Integrated Systems
+ * Vanderbilt University
+ * Nashville, TN
+ * USA
+ * http://www.isis.vanderbilt.edu/
+ *
+ * Information about TAO is available at:
+ * http://www.cs.wustl.edu/~schmidt/TAO.html
+ **/
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1216
+
+#ifndef CIAO_PROGRESSIVE_EXEC_0BRVI0_H_
+#define CIAO_PROGRESSIVE_EXEC_0BRVI0_H_
+
+#include /**/ "ace/pre.h"
+
+#include "ProgressiveEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Progressive_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ // TAO_IDL - Generated from
+ // be/be_visitor_component/facet_exh.cpp:53
+
+ class PROGRESSIVE_EXEC_Export Trigger_exec_i
+ : public virtual ::Simple::CCM_Trigger,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Trigger_exec_i (bool &,
+ ::Simple::CCM_Progressive_Context_ptr);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations and attributes from ::Simple::Trigger
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:37
+
+ virtual void
+ hello (
+ const char * hello);
+
+ private:
+ bool &triggered_;
+ ::Simple::CCM_Progressive_Context_ptr context_;
+ };
+
+ class PROGRESSIVE_EXEC_Export Progressive_exec_i
+ : public virtual Progressive_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Progressive_exec_i (void);
+ virtual ~Progressive_exec_i (void);
+
+ //@{
+ /** Supported operations and attributes. */
+
+ //@}
+
+ //@{
+ /** Component attributes and port operations. */
+
+
+ virtual ::Simple::CCM_Trigger_ptr
+ get_trig_in (void);
+ //@}
+
+ //@{
+ /** Operations from Components::SessionComponent. */
+
+ virtual void
+ set_session_context (::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+ //@}
+
+
+ private:
+ ::Simple::CCM_Progressive_Context_var context_;
+ bool triggered_;
+ };
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_Progressive_Impl (void);
+}
+
+namespace CIAO_Simple_Progressive_Impl
+{
+ class PROGRESSIVE_EXEC_Export ProgressiveHome_exec_i
+ : public virtual ProgressiveHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ProgressiveHome_exec_i (void);
+
+ virtual ~ProgressiveHome_exec_i (void);
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" PROGRESSIVE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_ProgressiveHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl
new file mode 100644
index 00000000000..7d41978b4de
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.idl
@@ -0,0 +1,25 @@
+// $Id$
+
+#ifndef SIMPLE_ATTRIBUTE_IDL
+#define SIMPLE_ATTRIBUTE_IDL
+
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleAttribute
+ {
+ attribute string str_attr;
+ attribute long long_attr;
+ attribute short short_attr;
+ };
+
+ home SimpleAttributeHome manages SimpleAttribute
+ {
+ attribute string str_attr;
+ attribute long long_attr;
+ attribute short short_attr;
+ };
+};
+
+#endif /*SIMPLE_ATTRIBUTE_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
new file mode 100644
index 00000000000..26dec1e85f5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
@@ -0,0 +1,108 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleAttribute"
+
+project(SimpleAttribute_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEATTRIBUTE_STUB_Export \
+ -Wb,stub_export_include=SimpleAttribute_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEATTRIBUTE_SVNT_Export \
+ -Wb,skel_export_include=SimpleAttribute_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,exec_export_include=SimpleAttribute_exec_export.h
+
+ IDL_Files {
+ SimpleAttribute.idl
+ }
+}
+
+project(SimpleAttribute_lem_gen) : ciaoidldefaults {
+ after += SimpleAttribute_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,export_include=SimpleAttribute_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleAttributeE.idl
+ }
+}
+
+project(SimpleAttribute_stub) : ccm_stub {
+ after += SimpleAttribute_idl_gen
+ libs +=
+
+ sharedname = SimpleAttribute_stub
+ dynamicflags = SIMPLEATTRIBUTE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleAttributeC.cpp
+ }
+
+ Header_Files {
+ SimpleAttributeC.h
+ SimpleAttribute_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleAttributeC.inl
+ }
+}
+
+project(SimpleAttribute_exec) : ciao_executor {
+ after += SimpleAttribute_lem_gen SimpleAttribute_stub
+ sharedname = SimpleAttribute_exec
+ libs += SimpleAttribute_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleAttributeEC.cpp
+ SimpleAttribute_exec.cpp
+ }
+
+ Header_Files {
+ SimpleAttributeEC.h
+ SimpleAttribute_exec.h
+ SimpleAttribute_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleAttributeEC.inl
+ }
+}
+
+
+project(SimpleAttribute_svnt) : ciao_servant {
+ after += SimpleAttribute_exec
+ sharedname = SimpleAttribute_svnt
+ libs += SimpleAttribute_exec \
+ SimpleAttribute_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleAttributeS.cpp
+ SimpleAttribute_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleAttributeS.h
+ SimpleAttribute_svnt.h
+ SimpleAttribute_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleAttributeS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp
new file mode 100644
index 00000000000..caa0415af75
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp
@@ -0,0 +1,241 @@
+// $Id$
+
+#include "SimpleAttribute_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleAttribute_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleAttribute_exec_i
+ //==================================================================
+
+ SimpleAttribute_exec_i::SimpleAttribute_exec_i (void)
+ : str_ (""),
+ long_(-1),
+ short_(-1)
+ {
+ }
+
+ SimpleAttribute_exec_i::~SimpleAttribute_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ char *
+ SimpleAttribute_exec_i::str_attr ()
+ {
+ // Your code here.
+ return CORBA::string_dup (str_.c_str ());
+ }
+
+ void
+ SimpleAttribute_exec_i::str_attr (const char * str)
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::str_attr");
+ // Your code here.
+ this->str_ = str;
+ }
+
+ ::CORBA::Long
+ SimpleAttribute_exec_i::long_attr ()
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::long_attr");
+ // Your code here.
+ return long_;
+ }
+
+ void
+ SimpleAttribute_exec_i::long_attr (::CORBA::Long long_attr )
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::long_attr");
+ // Your code here.
+ this->long_ = long_attr;
+ }
+
+ ::CORBA::Short
+ SimpleAttribute_exec_i::short_attr ()
+ {
+ // Your code here.
+ return short_;
+ }
+
+ void
+ SimpleAttribute_exec_i::short_attr (::CORBA::Short short_attr )
+ {
+ DANCE_TRACE ("SimpleAttribute_exec_i::short_attr");
+ // Your code here.
+ this->short_ = short_attr;
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleAttribute_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_SimpleAttribute_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleAttribute_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleAttribute_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ if (this->str_ == "" ||
+ this->long_ == -1 ||
+ this->short_ == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - "
+ "Error: Attribute values didin't initialize correctly!\n"));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleAttribute_exec_i::ccm_activate - "
+ "Test passed! String attribute is %s\n",
+ this->str_.c_str ()));
+ }
+
+ }
+
+ void
+ SimpleAttribute_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleAttribute_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleAttributeHome_exec_i
+ //==================================================================
+
+ SimpleAttributeHome_exec_i::SimpleAttributeHome_exec_i (void)
+ : str_ (""),
+ long_(-1),
+ short_(-1)
+ {
+ }
+
+ SimpleAttributeHome_exec_i::~SimpleAttributeHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+
+ char *
+ SimpleAttributeHome_exec_i::str_attr ()
+ {
+ // Your code here.
+ return CORBA::string_dup (str_.c_str ());
+ }
+
+ void
+ SimpleAttributeHome_exec_i::str_attr (const char * str)
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::str_attr");
+ // Your code here.
+ this->str_ = str;
+ }
+
+ ::CORBA::Long
+ SimpleAttributeHome_exec_i::long_attr ()
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::long_attr");
+ // Your code here.
+ return long_;
+ }
+
+ void
+ SimpleAttributeHome_exec_i::long_attr (::CORBA::Long long_attr )
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::long_attr");
+ // Your code here.
+ this->long_ = long_attr;
+ }
+
+ ::CORBA::Short
+ SimpleAttributeHome_exec_i::short_attr ()
+ {
+ // Your code here.
+ return short_;
+ }
+
+ void
+ SimpleAttributeHome_exec_i::short_attr (::CORBA::Short short_attr )
+ {
+ DANCE_TRACE ("SimpleAttributeHome_exec_i::short_attr");
+ // Your code here.
+ this->short_ = short_attr;
+ }
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleAttributeHome_exec_i::create ()
+ {
+ if (this->str_ == "" ||
+ this->long_ == -1 ||
+ this->short_ == -1)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - "
+ "Error: Attribute values didin't initialize correctly!\n"));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleAttributeHome_exec_i::create - "
+ "Test passed! String attribute is %s\n",
+ this->str_.c_str ()));
+ }
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleAttribute_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleAttributeHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleAttributeHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h
new file mode 100644
index 00000000000..72a7805247f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h
@@ -0,0 +1,123 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEATTRIBUTE_EXEC_H
+#define CIAO_SIMPLEATTRIBUTE_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleAttributeEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleAttribute_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleAttribute_Impl
+{
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleAttribute_exec_i
+ : public virtual SimpleAttribute_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleAttribute_exec_i (void);
+ virtual ~SimpleAttribute_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ virtual char *
+ str_attr ();
+
+ virtual void
+ str_attr (const char * str_attr);
+
+ virtual ::CORBA::Long
+ long_attr ();
+
+ virtual void
+ long_attr (::CORBA::Long long_attr);
+
+ virtual ::CORBA::Short
+ short_attr ();
+
+ virtual void
+ short_attr (::CORBA::Short short_attr);
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleAttribute_Context_var context_;
+ ACE_CString str_;
+ ::CORBA::Long long_;
+ ::CORBA::Short short_;
+ };
+
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleAttributeHome_exec_i
+ : public virtual SimpleAttributeHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleAttributeHome_exec_i (void);
+ virtual ~SimpleAttributeHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ virtual char *
+ str_attr ();
+
+ virtual void
+ str_attr (const char * str_attr);
+
+ virtual ::CORBA::Long
+ long_attr ();
+
+ virtual void
+ long_attr (::CORBA::Long long_attr);
+
+ virtual ::CORBA::Short
+ short_attr ();
+
+ virtual void
+ short_attr (::CORBA::Short short_attr);
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ private:
+ ACE_CString str_;
+ ::CORBA::Long long_;
+ ::CORBA::Short short_;
+ };
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleAttributeHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEATTRIBUTE_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl
new file mode 100644
index 00000000000..92e557c6096
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+#ifndef SIMPLE_COMMON_IDL
+#define SIMPLE_COMMON_IDL
+
+#include "Components.idl"
+
+#pragma ciao lem "SimpleCommonE.idl"
+
+module Simple
+{
+ interface Trigger
+ {
+ void hello (in string hello);
+ };
+
+ eventtype Hello
+ {
+ public string hello_;
+ };
+};
+
+#endif /*SIMPLE_COMMON_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc
new file mode 100644
index 00000000000..ff4417ad9a8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.mpc
@@ -0,0 +1,79 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleCommon"
+
+project(SimpleCommon_idl_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Gxhst -Gxhsk \
+ -Wb,stub_export_macro=SIMPLECOMMON_STUB_Export \
+ -Wb,stub_export_include=SimpleCommon_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECOMMON_SKEL_Export \
+ -Wb,skel_export_include=SimpleCommon_skel_export.h -Glem
+
+ IDL_Files {
+ SimpleCommon.idl
+ }
+}
+
+project(SimpleCommon_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ idlflags += -Gxhst \
+ -Wb,export_macro=SIMPLECOMMON_STUB_Export \
+ -Wb,export_include=SimpleCommon_stub_export.h \
+ -SS
+ after += SimpleCommon_idl_gen
+
+ IDL_Files {
+ SimpleCommonE.idl
+ }
+}
+
+project(SimpleCommon_stub) : ccm_stub {
+ after += SimpleCommon_lem_gen
+ libs +=
+
+ sharedname = SimpleCommon_stub
+ dynamicflags = SIMPLECOMMON_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleCommonC.cpp
+ SimpleCommonEC.cpp
+ }
+
+ Header_Files {
+ SimpleCommonC.h
+ SimpleCommon_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleCommonC.inl
+ }
+}
+
+project(SimpleCommon_skel) : ccm_svnt {
+ after += SimpleCommon_stub
+ sharedname = SimpleCommon_skel
+ libs += SimpleCommon_stub
+
+ dynamicflags = SIMPLECOMMON_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleCommonS.cpp
+ }
+
+ Header_Files {
+ SimpleCommonS.h
+ SimpleCommon_skel_export.h
+ }
+
+ Inline_Files {
+ SimpleCommonS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl
new file mode 100644
index 00000000000..3895eacda3c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_CONSUMER_IDL
+#define SIMPLE_CONSUMER_IDL
+
+#include "SimpleCommon.idl"
+#include <Components.idl>
+
+module Simple
+{
+ component SimpleConsumer
+ {
+ consumes Hello hello_;
+ };
+
+ home SimpleConsumerHome manages SimpleConsumer
+ {
+ };
+};
+
+#endif /*SIMPLE_CONSUMER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
new file mode 100644
index 00000000000..c63d06d2b98
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleConsumer"
+
+project(SimpleCommon_SimpleConsumer_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLECONSUMER_STUB_Export \
+ -Wb,stub_export_include=SimpleConsumer_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECONSUMER_SVNT_Export \
+ -Wb,skel_export_include=SimpleConsumer_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLECONSUMER_EXEC_Export \
+ -Wb,exec_export_include=SimpleConsumer_exec_export.h \
+
+ IDL_Files {
+ SimpleConsumer.idl
+ }
+}
+
+project(SimpleCommon_SimpleConsumer_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleConsumer_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLECONSUMER_EXEC_Export \
+ -Wb,export_include=SimpleConsumer_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleConsumerE.idl
+ }
+}
+
+project(SimpleCommon_SimpleConsumer_stub) : ccm_stub {
+ after += SimpleCommon_SimpleConsumer_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleConsumer_stub
+ dynamicflags = SIMPLECONSUMER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleConsumerC.cpp
+ }
+
+ Header_Files {
+ SimpleConsumerC.h
+ SimpleConsumer_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleConsumerC.inl
+ }
+}
+
+project(SimpleCommon_SimpleConsumer_exec) : ciao_executor {
+ after += SimpleCommon_SimpleConsumer_lem_gen SimpleCommon_SimpleConsumer_stub
+ sharedname = SimpleConsumer_exec
+ libs += SimpleConsumer_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLECONSUMER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleConsumerEC.cpp
+ SimpleConsumer_exec.cpp
+ }
+
+ Header_Files {
+ SimpleConsumerEC.h
+ SimpleConsumer_exec.h
+ SimpleConsumer_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleConsumerEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleConsumer_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleConsumer_exec
+ sharedname = SimpleConsumer_svnt
+ libs += SimpleConsumer_exec \
+ SimpleConsumer_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLECONSUMER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleConsumerS.cpp
+ SimpleConsumer_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleConsumerS.h
+ SimpleConsumer_svnt.h
+ SimpleConsumer_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleConsumerS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp
new file mode 100644
index 00000000000..da1836889c9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp
@@ -0,0 +1,144 @@
+// $Id$
+
+#include "SimpleConsumer_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleConsumer_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleConsumer_exec_i
+ //==================================================================
+
+ SimpleConsumer_exec_i::SimpleConsumer_exec_i (void) :
+ pushed_ (false)
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::SimpleConsumer_exec_i (void)");
+ }
+
+ SimpleConsumer_exec_i::~SimpleConsumer_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::~SimpleConsumer_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ void
+ SimpleConsumer_exec_i::push_hello_ (
+ ::Simple::Hello * ev )
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::push_hello_ ()");
+ // Your code here.
+
+ this->pushed_ = true;
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleConsumer_exec_i::push_hello_ - "
+ "Received hello event, value is %s\n", ev->hello_ ()));
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleConsumer_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::set_session_context ()");
+
+ this->context_ =
+ ::Simple::CCM_SimpleConsumer_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleConsumer_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleConsumer_exec_i::ccm_remove ()");
+ if (!pushed_)
+ {
+ ACE_ERROR ((LM_EMERGENCY, "Error: SimpleConsumer didn't get pushed!\n"));
+ }
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleConsumerHome_exec_i
+ //==================================================================
+
+ SimpleConsumerHome_exec_i::SimpleConsumerHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleConsumerHome_exec_i::SimpleConsumerHome_exec_i (void)");
+ }
+
+ SimpleConsumerHome_exec_i::~SimpleConsumerHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleConsumerHome_exec_i::~SimpleConsumerHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleConsumerHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleConsumerHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleConsumer_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLECONSUMER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleConsumerHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleConsumerHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleConsumerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h
new file mode 100644
index 00000000000..d2b0e816302
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h
@@ -0,0 +1,85 @@
+// $Id$
+
+#ifndef CIAO_SIMPLECONSUMER_EXEC_H
+#define CIAO_SIMPLECONSUMER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleConsumerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleConsumer_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleConsumer_Impl
+{
+ class SIMPLECONSUMER_EXEC_Export SimpleConsumer_exec_i
+ : public virtual SimpleConsumer_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleConsumer_exec_i (void);
+ virtual ~SimpleConsumer_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual void
+ push_hello_ (
+ ::Simple::Hello *ev);
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleConsumer_Context_var context_;
+ bool pushed_;
+ };
+
+ class SIMPLECONSUMER_EXEC_Export SimpleConsumerHome_exec_i
+ : public virtual SimpleConsumerHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleConsumerHome_exec_i (void);
+ virtual ~SimpleConsumerHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLECONSUMER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleConsumerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLECONSUMER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl
new file mode 100644
index 00000000000..37431ca8134
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_EMITTER_IDL
+#define SIMPLE_EMITTER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleEmitter
+ {
+ emits Hello hello;
+ };
+
+ home SimpleEmitterHome manages SimpleEmitter
+ {
+ };
+};
+
+#endif /*SIMPLE_EMITTER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
new file mode 100644
index 00000000000..62f942a8498
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleEmitter"
+
+project(SimpleCommon_SimpleEmitter_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEEMITTER_STUB_Export \
+ -Wb,stub_export_include=SimpleEmitter_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEEMITTER_SVNT_Export \
+ -Wb,skel_export_include=SimpleEmitter_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEEMITTER_EXEC_Export \
+ -Wb,exec_export_include=SimpleEmitter_exec_export.h \
+
+ IDL_Files {
+ SimpleEmitter.idl
+ }
+}
+
+project(SimpleCommon_SimpleEmitter_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleEmitter_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEEMITTER_EXEC_Export \
+ -Wb,export_include=SimpleEmitter_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleEmitterE.idl
+ }
+}
+
+project(SimpleCommon_SimpleEmitter_stub) : ccm_stub {
+ after += SimpleCommon_SimpleEmitter_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleEmitter_stub
+ dynamicflags = SIMPLEEMITTER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleEmitterC.cpp
+ }
+
+ Header_Files {
+ SimpleEmitterC.h
+ SimpleEmitter_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleEmitterC.inl
+ }
+}
+
+project(SimpleCommon_SimpleEmitter_exec) : ciao_executor {
+ after += SimpleCommon_SimpleEmitter_lem_gen SimpleCommon_SimpleEmitter_stub
+ sharedname = SimpleEmitter_exec
+ libs += SimpleEmitter_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEEMITTER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleEmitterEC.cpp
+ SimpleEmitter_exec.cpp
+ }
+
+ Header_Files {
+ SimpleEmitterEC.h
+ SimpleEmitter_exec.h
+ SimpleEmitter_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleEmitterEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleEmitter_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleEmitter_exec
+ sharedname = SimpleEmitter_svnt
+ libs += SimpleEmitter_exec \
+ SimpleEmitter_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEEMITTER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleEmitterS.cpp
+ SimpleEmitter_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleEmitterS.h
+ SimpleEmitter_svnt.h
+ SimpleEmitter_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleEmitterS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp
new file mode 100644
index 00000000000..a650d1f3d19
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp
@@ -0,0 +1,131 @@
+// $Id$
+
+#include "SimpleEmitter_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleEmitter_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleEmitter_exec_i
+ //==================================================================
+
+ SimpleEmitter_exec_i::SimpleEmitter_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::SimpleEmitter_exec_i (void)");
+ }
+
+ SimpleEmitter_exec_i::~SimpleEmitter_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::~SimpleEmitter_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleEmitter_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleEmitter_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleEmitter_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::ccm_activate ()");
+ // Your code here.
+
+ ::Simple::Hello_var hello = new OBV_Simple::Hello ("Test successful, hello from SimpleEmitter_exec_i");
+
+ this->context_->push_hello (hello._retn ());
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleEmitter_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleEmitterHome_exec_i
+ //==================================================================
+
+ SimpleEmitterHome_exec_i::SimpleEmitterHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitterHome_exec_i::SimpleEmitterHome_exec_i (void)");
+ }
+
+ SimpleEmitterHome_exec_i::~SimpleEmitterHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleEmitterHome_exec_i::~SimpleEmitterHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleEmitterHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleEmitterHome_exec_i::create ()");
+
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleEmitter_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEEMITTER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleEmitterHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleEmitterHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleEmitterHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h
new file mode 100644
index 00000000000..0501bfb6977
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEEMITTER_EXEC_H
+#define CIAO_SIMPLEEMITTER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleEmitterEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleEmitter_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleEmitter_Impl
+{
+ class SIMPLEEMITTER_EXEC_Export SimpleEmitter_exec_i
+ : public virtual SimpleEmitter_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleEmitter_exec_i (void);
+ virtual ~SimpleEmitter_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleEmitter_Context_var context_;
+ };
+
+ class SIMPLEEMITTER_EXEC_Export SimpleEmitterHome_exec_i
+ : public virtual SimpleEmitterHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleEmitterHome_exec_i (void);
+ virtual ~SimpleEmitterHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEEMITTER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleEmitterHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEEMITTER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl
new file mode 100644
index 00000000000..ac588ab0db6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.idl
@@ -0,0 +1,28 @@
+// $Id$
+
+#ifndef SIMPLE_FAILURE_IDL
+#define SIMPLE_FAILURE_IDL
+
+#include "Components.idl"
+
+module Simple
+{
+ enum FailureType {
+ NO_FAILURE,
+ AT_STARTUP,
+ AT_ACTIVATE,
+ AT_PASSIVATE,
+ AT_REMOVE
+ };
+
+ component SimpleFailure
+ {
+ attribute FailureType type_attr;
+ };
+
+ home SimpleFailureHome manages SimpleFailure
+ {
+ };
+};
+
+#endif /*SIMPLE_ATTRIBUTE_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc
new file mode 100644
index 00000000000..c5deba22e18
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure.mpc
@@ -0,0 +1,108 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleFailure"
+
+project(SimpleFailure_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEATTRIBUTE_STUB_Export \
+ -Wb,stub_export_include=SimpleFailure_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEATTRIBUTE_SVNT_Export \
+ -Wb,skel_export_include=SimpleFailure_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,exec_export_include=SimpleFailure_exec_export.h
+
+ IDL_Files {
+ SimpleFailure.idl
+ }
+}
+
+project(SimpleFailure_lem_gen) : ciaoidldefaults {
+ after += SimpleFailure_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEATTRIBUTE_EXEC_Export \
+ -Wb,export_include=SimpleFailure_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleFailureE.idl
+ }
+}
+
+project(SimpleFailure_stub) : ccm_stub {
+ after += SimpleFailure_idl_gen
+ libs +=
+
+ sharedname = SimpleFailure_stub
+ dynamicflags = SIMPLEATTRIBUTE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleFailureC.cpp
+ }
+
+ Header_Files {
+ SimpleFailureC.h
+ SimpleFailure_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleFailureC.inl
+ }
+}
+
+project(SimpleFailure_exec) : ciao_executor {
+ after += SimpleFailure_lem_gen SimpleFailure_stub
+ sharedname = SimpleFailure_exec
+ libs += SimpleFailure_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleFailureEC.cpp
+ SimpleFailure_exec.cpp
+ }
+
+ Header_Files {
+ SimpleFailureEC.h
+ SimpleFailure_exec.h
+ SimpleFailure_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleFailureEC.inl
+ }
+}
+
+
+project(SimpleFailure_svnt) : ciao_servant {
+ after += SimpleFailure_exec
+ sharedname = SimpleFailure_svnt
+ libs += SimpleFailure_exec \
+ SimpleFailure_stub
+
+ dynamicflags = SIMPLEATTRIBUTE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleFailureS.cpp
+ SimpleFailure_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleFailureS.h
+ SimpleFailure_svnt.h
+ SimpleFailure_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleFailureS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp
new file mode 100644
index 00000000000..2fef058d74f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.cpp
@@ -0,0 +1,165 @@
+// $Id$
+
+#include "SimpleFailure_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleFailure_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleFailure_exec_i
+ //==================================================================
+
+ SimpleFailure_exec_i::SimpleFailure_exec_i (void)
+ : type_ (::Simple::NO_FAILURE)
+ {
+ }
+
+ SimpleFailure_exec_i::~SimpleFailure_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ ::Simple::FailureType
+ SimpleFailure_exec_i::type_attr (void)
+ {
+ return this->type_;
+ }
+
+ void
+ SimpleFailure_exec_i::type_attr (
+ ::Simple::FailureType type)
+ {
+ this->type_ = type;
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleFailure_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Simple::CCM_SimpleFailure_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleFailure_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_STARTUP)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::configuration_complete - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::configuration_complete - "
+ "Successfully configured!\n"));
+ }
+
+ void
+ SimpleFailure_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_ACTIVATE)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::ccm_activate - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::ccm_activate - "
+ "Successfully activated!\n"));
+ }
+
+ void
+ SimpleFailure_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_PASSIVATE)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::ccm_passivate - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::ccm_passivate - "
+ "Successfully deactivated!\n"));
+ }
+
+ void
+ SimpleFailure_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ if (this->type_ == ::Simple::AT_REMOVE)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleFailure_exec_i::ccm_remove - "
+ "Configured failure!\n"));
+
+ throw ::CORBA::INTERNAL ();
+ }
+ ACE_DEBUG ((LM_INFO, "SimpleFailure_exec_i::ccm_remove - "
+ "Successfully removed!\n"));
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleFailureHome_exec_i
+ //==================================================================
+
+ SimpleFailureHome_exec_i::SimpleFailureHome_exec_i (void)
+ {
+ }
+
+ SimpleFailureHome_exec_i::~SimpleFailureHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleFailureHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleFailure_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleFailureHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleFailureHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h
new file mode 100644
index 00000000000..35d7f2211d5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleFailure_exec.h
@@ -0,0 +1,89 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEFAILURE_EXEC_H
+#define CIAO_SIMPLEFAILURE_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleFailureEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleFailure_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleFailure_Impl
+{
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleFailure_exec_i
+ : public virtual SimpleFailure_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleFailure_exec_i (void);
+ virtual ~SimpleFailure_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ virtual ::Simple::FailureType
+ type_attr (void);
+
+ virtual void
+ type_attr (
+ ::Simple::FailureType type_attr);
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleFailure_Context_var context_;
+ ::Simple::FailureType type_;
+ };
+
+ class SIMPLEATTRIBUTE_EXEC_Export SimpleFailureHome_exec_i
+ : public virtual SimpleFailureHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleFailureHome_exec_i (void);
+ virtual ~SimpleFailureHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ private:
+ };
+
+ extern "C" SIMPLEATTRIBUTE_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleFailureHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEFAILURE_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl
new file mode 100644
index 00000000000..60aec58f9af
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_MULTIPLEUSER_IDL
+#define SIMPLE_MULTIPLEUSER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleMultipleUser
+ {
+ uses multiple Trigger trig;
+ };
+
+ home SimpleMultipleUserHome manages SimpleMultipleUser
+ {
+ };
+};
+
+#endif /*SIMPLE_MULTIPLEUSER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
new file mode 100644
index 00000000000..b20759b54e0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleMultipleUser"
+
+project(SimpleCom_SimpleMulUser_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEMULTIPLEUSER_STUB_Export \
+ -Wb,stub_export_include=SimpleMultipleUser_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEMULTIPLEUSER_SVNT_Export \
+ -Wb,skel_export_include=SimpleMultipleUser_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEMULTIPLEUSER_EXEC_Export \
+ -Wb,exec_export_include=SimpleMultipleUser_exec_export.h \
+
+ IDL_Files {
+ SimpleMultipleUser.idl
+ }
+}
+
+project(SimpleCom_SimpleMulUser_lem_gen) : ciaoidldefaults {
+ after += SimpleCom_SimpleMulUser_idl_gen SimpleCommon_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEMULTIPLEUSER_EXEC_Export \
+ -Wb,export_include=SimpleMultipleUser_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleMultipleUserE.idl
+ }
+}
+
+project(SimpleCommon_SimpleMultipleUser_stub) : ccm_stub {
+ after += SimpleCommon_stub SimpleCom_SimpleMulUser_idl_gen
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleMultipleUser_stub
+ dynamicflags = SIMPLEMULTIPLEUSER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleMultipleUserC.cpp
+ }
+
+ Header_Files {
+ SimpleMultipleUserC.h
+ SimpleMultipleUser_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleMultipleUserC.inl
+ }
+}
+
+project(SimpleCommon_SimpleMultipleUser_exec) : ciao_executor {
+ after += SimpleCom_SimpleMulUser_lem_gen SimpleCommon_SimpleMultipleUser_stub
+ sharedname = SimpleMultipleUser_exec
+ libs += SimpleMultipleUser_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEMULTIPLEUSER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleMultipleUserEC.cpp
+ SimpleMultipleUser_exec.cpp
+ }
+
+ Header_Files {
+ SimpleMultipleUserEC.h
+ SimpleMultipleUser_exec.h
+ SimpleMultipleUser_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleMultipleUserEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleMultipleUser_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleMultipleUser_exec
+ sharedname = SimpleMultipleUser_svnt
+ libs += SimpleMultipleUser_exec \
+ SimpleMultipleUser_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEMULTIPLEUSER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleMultipleUserS.cpp
+ SimpleMultipleUser_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleMultipleUserS.h
+ SimpleMultipleUser_svnt.h
+ SimpleMultipleUser_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleMultipleUserS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
new file mode 100644
index 00000000000..a61b791df5b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
@@ -0,0 +1,158 @@
+// $Id$
+
+#include "SimpleMultipleUser_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleMultipleUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleMultipleUser_exec_i
+ //==================================================================
+
+ SimpleMultipleUser_exec_i::SimpleMultipleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::SimpleMultipleUser_exec_i (void)");
+ }
+
+ SimpleMultipleUser_exec_i::~SimpleMultipleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::~SimpleMultipleUser_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleMultipleUser_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleMultipleUser_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleMultipleUser_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::ccm_activate ()");
+
+ ::Simple::SimpleMultipleUser::trigConnections_var conns =
+ this->context_->get_connections_trig ();
+
+ ACE_DEBUG ((LM_NOTICE, "SimpleMultipleUser_exec_i::ccm_activate - "
+ "Got %u connections to my receptacle\n",
+ conns->length ()));
+
+ for (CORBA::ULong i = 0; i < conns->length (); ++i)
+ {
+ try
+ {
+ ACE_DEBUG ((LM_NOTICE, "SimpleMultipleUser_exec_i::ccm_activate - "
+ "Invoking %u'th connection\n", i));
+ ::Simple::Trigger_var trig (conns[i].objref);
+
+ trig->hello ("Test succeeded, hello from SimpleMultipleUser_exec");
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleMultipleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception on %u'th reference, details follow:\n",
+ i));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleMultipleUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ }
+
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleMultipleUser_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleMultipleUserHome_exec_i
+ //==================================================================
+
+ SimpleMultipleUserHome_exec_i::SimpleMultipleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUserHome_exec_i::SimpleMultipleUserHome_exec_i (void)");
+ }
+
+ SimpleMultipleUserHome_exec_i::~SimpleMultipleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleMultipleUserHome_exec_i::~SimpleMultipleUserHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleMultipleUserHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleMultipleUserHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleMultipleUser_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEMULTIPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleMultipleUserHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleMultipleUserHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleMultipleUserHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h
new file mode 100644
index 00000000000..3b61eba9571
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEMULTIPLEUSER_EXEC_H
+#define CIAO_SIMPLEMULTIPLEUSER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleMultipleUserEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleMultipleUser_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleMultipleUser_Impl
+{
+ class SIMPLEMULTIPLEUSER_EXEC_Export SimpleMultipleUser_exec_i
+ : public virtual SimpleMultipleUser_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleMultipleUser_exec_i (void);
+ virtual ~SimpleMultipleUser_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleMultipleUser_Context_var context_;
+ };
+
+ class SIMPLEMULTIPLEUSER_EXEC_Export SimpleMultipleUserHome_exec_i
+ : public virtual SimpleMultipleUserHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleMultipleUserHome_exec_i (void);
+ virtual ~SimpleMultipleUserHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEMULTIPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleMultipleUserHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEMULTIPLEUSER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl
new file mode 100644
index 00000000000..7e9b11fe8eb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+#ifndef SIMPLE_PROVIDER_IDL
+#define SIMPLE_PROVIDER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+#pragma ciao lem "SimpleNilFacetProviderE.idl"
+
+module Simple
+{
+ component SimpleNilFacetProvider
+ {
+ provides Trigger trig;
+ };
+
+ home SimpleNilFacetProviderHome manages SimpleNilFacetProvider
+ {
+ };
+};
+
+#endif /*SIMPLE_PROVIDER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc
new file mode 100644
index 00000000000..6862defa599
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc
@@ -0,0 +1,112 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleNilFacetProvider"
+
+project(SimpleCommon_SNFP_idl_gen) : componentidldefaults {
+ after += SimpleCommon_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=SIMPLENILFACETPROVIDER_STUB_Export \
+ -Wb,stub_export_include=SimpleNilFacetProvider_stub_export.h \
+ -Wb,skel_export_macro=SIMPLENILFACETPROVIDER_SVNT_Export \
+ -Wb,skel_export_include=SimpleNilFacetProvider_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLENILFACETPROVIDER_EXEC_Export \
+ -Wb,exec_export_include=SimpleNilFacetProvider_exec_export.h
+
+ IDL_Files {
+ SimpleNilFacetProvider.idl
+ }
+}
+
+project(SimpleCommon_SNFP_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SNFP_idl_gen SimpleCommon_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLENILFACETPROVIDER_EXEC_Export \
+ -Wb,export_include=SimpleNilFacetProvider_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleNilFacetProviderE.idl
+ }
+}
+
+project(SimpleCommon_SNFP_stub) : ccm_stub {
+ after += SimpleCommon_SNFP_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleNilFacetProvider_stub
+ dynamicflags = SIMPLENILFACETPROVIDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetProviderC.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetProviderC.h
+ SimpleNilFacetProvider_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetProviderC.inl
+ }
+}
+
+project(SimpleCommon_SNFP_exec) : ciao_executor {
+ after += SimpleCommon_SNFP_lem_gen SimpleCommon_SNFP_stub
+ sharedname = SimpleNilFacetProvider_exec
+ libs += SimpleNilFacetProvider_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETPROVIDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetProviderEC.cpp
+ SimpleNilFacetProvider_exec.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetProviderEC.h
+ SimpleNilFacetProvider_exec.h
+ SimpleNilFacetProvider_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetProviderEC.inl
+ }
+}
+
+
+project(SimpleCommon_SNFP_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SNFP_exec
+ sharedname = SimpleNilFacetProvider_svnt
+ libs += SimpleNilFacetProvider_exec \
+ SimpleNilFacetProvider_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETPROVIDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetProviderS.cpp
+ SimpleNilFacetProvider_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetProviderS.h
+ SimpleNilFacetProvider_svnt.h
+ SimpleNilFacetProvider_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetProviderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
new file mode 100644
index 00000000000..5ddbb6691ba
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
@@ -0,0 +1,160 @@
+// $Id$
+
+#include "SimpleNilFacetProvider_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleNilFacetProvider_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //==================================================================
+
+ Trigger_exec_i::Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ DANCE_TRACE ("Trigger_exec_i::hello ()");
+ // Your code here.
+ ACE_DEBUG ((LM_EMERGENCY, "Trigger_exec_i::hello - "
+ "Got the following information from trig port: %C\n",
+ hello));
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNilFacetProvider_exec_i
+ //==================================================================
+
+ SimpleNilFacetProvider_exec_i::SimpleNilFacetProvider_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::SimpleNilFacetProvider_exec_i (void)");
+ }
+
+ SimpleNilFacetProvider_exec_i::~SimpleNilFacetProvider_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::~SimpleNilFacetProvider_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ ::Simple::CCM_Trigger_ptr
+ SimpleNilFacetProvider_exec_i::get_trig ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::get_trig ()");
+ return ::Simple::CCM_Trigger::_nil ();
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleNilFacetProvider_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleNilFacetProvider_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProvider_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNilFacetProviderHome_exec_i
+ //==================================================================
+
+ SimpleNilFacetProviderHome_exec_i::SimpleNilFacetProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProviderHome_exec_i::SimpleNilFacetProviderHome_exec_i (void)");
+ }
+
+ SimpleNilFacetProviderHome_exec_i::~SimpleNilFacetProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetProviderHome_exec_i::~SimpleNilFacetProviderHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleNilFacetProviderHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleNilFacetProviderHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleNilFacetProvider_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLENILFACETPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetProviderHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleNilFacetProviderHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleNilFacetProviderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h
new file mode 100644
index 00000000000..8e2525029d2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+
+#ifndef CIAO_SIMPLENILFACETPROVIDER_EXEC_H
+#define CIAO_SIMPLENILFACETPROVIDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleNilFacetProviderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleNilFacetProvider_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleNilFacetProvider_Impl
+{
+ class SIMPLENILFACETPROVIDER_EXEC_Export Trigger_exec_i
+ : public virtual ::Simple::CCM_Trigger,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Trigger_exec_i (void);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations from ::Simple::Trigger
+
+ virtual void
+ hello (
+ const char * hello);
+ };
+
+ class SIMPLENILFACETPROVIDER_EXEC_Export SimpleNilFacetProvider_exec_i
+ : public virtual SimpleNilFacetProvider_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetProvider_exec_i (void);
+ virtual ~SimpleNilFacetProvider_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual ::Simple::CCM_Trigger_ptr
+ get_trig ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleNilFacetProvider_Context_var context_;
+ };
+
+ class SIMPLENILFACETPROVIDER_EXEC_Export SimpleNilFacetProviderHome_exec_i
+ : public virtual SimpleNilFacetProviderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetProviderHome_exec_i (void);
+ virtual ~SimpleNilFacetProviderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLENILFACETPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetProviderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLENILFACETPROVIDER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl
new file mode 100644
index 00000000000..dde46667e8c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_USER_IDL
+#define SIMPLE_USER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleNilFacetUser
+ {
+ uses Trigger trig;
+ };
+
+ home SimpleNilFacetUserHome manages SimpleNilFacetUser
+ {
+ };
+};
+
+#endif /*SIMPLE_USER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc
new file mode 100644
index 00000000000..1dd5c04b006
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleNilFacetUser"
+
+project(SimpleCommon_SNFU_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLENILFACETUSER_STUB_Export \
+ -Wb,stub_export_include=SimpleNilFacetUser_stub_export.h \
+ -Wb,skel_export_macro=SIMPLENILFACETUSER_SVNT_Export \
+ -Wb,skel_export_include=SimpleNilFacetUser_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLENILFACETUSER_EXEC_Export \
+ -Wb,exec_export_include=SimpleNilFacetUser_exec_export.h \
+ -Gsv
+
+ IDL_Files {
+ SimpleNilFacetUser.idl
+ }
+}
+
+project(SimpleCommon_SNFU_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SNFU_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLENILFACETUSER_EXEC_Export \
+ -Wb,export_include=SimpleNilFacetUser_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleNilFacetUserE.idl
+ }
+}
+
+project(SimpleCommon_SNFU_stub) : ccm_stub {
+ after += SimpleCommon_SNFU_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleNilFacetUser_stub
+ dynamicflags = SIMPLENILFACETUSER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetUserC.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetUserC.h
+ SimpleNilFacetUser_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetUserC.inl
+ }
+}
+
+project(SimpleCommon_SNFU_exec) : ciao_executor {
+ after += SimpleCommon_SNFU_lem_gen SimpleCommon_SNFU_stub
+ sharedname = SimpleNilFacetUser_exec
+ libs += SimpleNilFacetUser_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETUSER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetUserEC.cpp
+ SimpleNilFacetUser_exec.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetUserEC.h
+ SimpleNilFacetUser_exec.h
+ SimpleNilFacetUser_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetUserEC.inl
+ }
+}
+
+
+project(SimpleCommon_SNFU_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SNFU_exec
+ sharedname = SimpleNilFacetUser_svnt
+ libs += SimpleNilFacetUser_exec \
+ SimpleNilFacetUser_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLENILFACETUSER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNilFacetUserS.cpp
+ SimpleNilFacetUser_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleNilFacetUserS.h
+ SimpleNilFacetUser_svnt.h
+ SimpleNilFacetUser_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleNilFacetUserS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
new file mode 100644
index 00000000000..ea8382a6323
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
@@ -0,0 +1,159 @@
+// $Id$
+
+#include "DAnCE/Logger/Log_Macros.h"
+#include "SimpleNilFacetUser_exec.h"
+
+namespace CIAO_Simple_SimpleNilFacetUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNilFacetUser_exec_i
+ //==================================================================
+
+ SimpleNilFacetUser_exec_i::SimpleNilFacetUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::SimpleNilFacetUser_exec_i (void)");
+ }
+
+ SimpleNilFacetUser_exec_i::~SimpleNilFacetUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::~SimpleNilFacetUser_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleNilFacetUser_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleNilFacetUser_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::ccm_activate ()");
+ bool caught_exception = false;
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Reference nil for port trig\n"));
+ return;
+ }
+
+ try
+ {
+ trig->hello ("Test successful; hello from SimpleNilFacetUser.");
+ }
+ catch (const ::CORBA::INV_OBJREF &)
+ {
+ ACE_DEBUG ((LM_DEBUG, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Caught correct CORBA exception\n"));
+ caught_exception = true;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleNilFacetUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ if (!caught_exception)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Didn't catch correct exception\n"));
+ }
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::ccm_passivate ()");
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUser_exec_i::ccm_remove ()");
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNilFacetUserHome_exec_i
+ //==================================================================
+
+ SimpleNilFacetUserHome_exec_i::SimpleNilFacetUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUserHome_exec_i::SimpleNilFacetUserHome_exec_i (void)");
+ }
+
+ SimpleNilFacetUserHome_exec_i::~SimpleNilFacetUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNilFacetUserHome_exec_i::~SimpleNilFacetUserHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleNilFacetUserHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleNilFacetUserHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleNilFacetUser_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLENILFACETUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetUserHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleNilFacetUserHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleNilFacetUserHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h
new file mode 100644
index 00000000000..897acf3ba99
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLENILFACETUSER_EXEC_H
+#define CIAO_SIMPLENILFACETUSER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleNilFacetUserEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleNilFacetUser_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleNilFacetUser_Impl
+{
+ class SIMPLENILFACETUSER_EXEC_Export SimpleNilFacetUser_exec_i
+ : public virtual SimpleNilFacetUser_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetUser_exec_i (void);
+ virtual ~SimpleNilFacetUser_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleNilFacetUser_Context_var context_;
+ };
+
+ class SIMPLENILFACETUSER_EXEC_Export SimpleNilFacetUserHome_exec_i
+ : public virtual SimpleNilFacetUserHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNilFacetUserHome_exec_i (void);
+ virtual ~SimpleNilFacetUserHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLENILFACETUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNilFacetUserHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLENILFACETUSER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl
new file mode 100644
index 00000000000..d8f02901be4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#include <Components.idl>
+
+module Simple
+{
+ component SimpleNull
+ {
+ };
+
+ home SimpleNullHome manages SimpleNull
+ {
+ };
+};
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc
new file mode 100644
index 00000000000..84fcb5a4d94
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull.mpc
@@ -0,0 +1,107 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleNull"
+
+project(SimpleNull_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLENULL_STUB_Export \
+ -Wb,stub_export_include=SimpleNull_stub_export.h \
+ -Wb,skel_export_macro=SIMPLENULL_SVNT_Export \
+ -Wb,skel_export_include=SimpleNull_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLENULL_EXEC_Export \
+ -Wb,exec_export_include=SimpleNull_exec_export.h
+ IDL_Files {
+ SimpleNull.idl
+ }
+}
+
+project(SimpleNull_lem_gen) : ciaoidldefaults {
+ after += SimpleNull_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLENULL_EXEC_Export \
+ -Wb,export_include=SimpleNull_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleNullE.idl
+ }
+}
+
+project(SimpleNull_stub) : ccm_stub {
+ after += SimpleNull_idl_gen
+ libs +=
+
+ sharedname = SimpleNull_stub
+ dynamicflags = SIMPLENULL_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNullC.cpp
+ }
+
+ Header_Files {
+ SimpleNullC.h
+ SimpleNull_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleNullC.inl
+ }
+}
+
+project(SimpleNull_exec) : ciao_executor {
+ after += SimpleNull_lem_gen SimpleNull_stub
+ sharedname = SimpleNull_exec
+ libs += SimpleNull_stub
+
+ dynamicflags = SIMPLENULL_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNullEC.cpp
+ SimpleNull_exec.cpp
+ }
+
+ Header_Files {
+ SimpleNullEC.h
+ SimpleNull_exec.h
+ SimpleNull_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleNullEC.inl
+ }
+}
+
+
+project(SimpleNull_svnt) : ciao_servant {
+ after += SimpleNull_exec
+ sharedname = SimpleNull_svnt
+ libs += SimpleNull_exec \
+ SimpleNull_stub
+
+ dynamicflags = SIMPLENULL_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleNullS.cpp
+ SimpleNull_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleNullS.h
+ SimpleNull_svnt.h
+ SimpleNull_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleNullS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
new file mode 100644
index 00000000000..eab01e30f54
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
@@ -0,0 +1,150 @@
+// $Id$
+
+#include "SimpleNull_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleNull_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNull_exec_i
+ //==================================================================
+
+ SimpleNull_exec_i::SimpleNull_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::SimpleNull_exec_i (void)");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::SimpleNull_exec_i (void)\n"));
+ }
+
+ SimpleNull_exec_i::~SimpleNull_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::~SimpleNull_exec_i");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::~SimpleNull_exec_i\n"));
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleNull_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::set_session_context");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::set_session_context\n"));
+ this->context_ =
+ ::Simple::CCM_SimpleNull_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleNull_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::configuration_complete\n");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::configuration_complete\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::ccm_activate");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_activate\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::ccm_passivate");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_passivate\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleNull_exec_i::ccm_remove");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_remove\n"));
+ // Your code here.
+ }
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_SimpleNull_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ SimpleNull_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNullHome_exec_i
+ //==================================================================
+
+ SimpleNullHome_exec_i::SimpleNullHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNullHome_exec_i::SimpleNullHome_exec_i");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::SimpleNullHome_exec_i\n"));
+ }
+
+ SimpleNullHome_exec_i::~SimpleNullHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleNullHome_exec_i::~SimpleNullHome_exec_i");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::~SimpleNullHome_exec_i\n"));
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleNullHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleNullHome_exec_i::create");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::create\n"));
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleNull_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNullHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleNullHome_Impl");
+ ACE_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - create_Simple_SimpleNullHome_Impl\n"));
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleNullHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
new file mode 100644
index 00000000000..5f0cce9bfbb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
@@ -0,0 +1,83 @@
+// $Id$
+
+#ifndef CIAO_SIMPLENULL_EXEC_H
+#define CIAO_SIMPLENULL_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleNullEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleNull_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleNull_Impl
+{
+ class SIMPLENULL_EXEC_Export SimpleNull_exec_i
+ : public virtual SimpleNull_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNull_exec_i (void);
+ virtual ~SimpleNull_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleNull_Context_var context_;
+ };
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_SimpleNull_Impl (void);
+
+ class SIMPLENULL_EXEC_Export SimpleNullHome_exec_i
+ : public virtual SimpleNullHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleNullHome_exec_i (void);
+ virtual ~SimpleNullHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleNullHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLENULL_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl
new file mode 100644
index 00000000000..ec9859d0130
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_PROVIDER_IDL
+#define SIMPLE_PROVIDER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleProvider
+ {
+ provides Trigger trig;
+ };
+
+ home SimpleProviderHome manages SimpleProvider
+ {
+ };
+};
+
+#endif /*SIMPLE_PROVIDER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc
new file mode 100644
index 00000000000..352f35f64b1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleProvider"
+
+project(SimpleCommon_SimpleProvider_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=SIMPLEPROVIDER_STUB_Export \
+ -Wb,stub_export_include=SimpleProvider_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEPROVIDER_SVNT_Export \
+ -Wb,skel_export_include=SimpleProvider_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEPROVIDER_EXEC_Export \
+ -Wb,exec_export_include=SimpleProvider_exec_export.h
+
+ IDL_Files {
+ SimpleProvider.idl
+ }
+}
+
+project(SimpleCommon_SimpleProvider_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleProvider_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEPROVIDER_EXEC_Export \
+ -Wb,export_include=SimpleProvider_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleProviderE.idl
+ }
+}
+
+project(SimpleCommon_SimpleProvider_stub) : ccm_stub {
+ after += SimpleCommon_SimpleProvider_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleProvider_stub
+ dynamicflags = SIMPLEPROVIDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleProviderC.cpp
+ }
+
+ Header_Files {
+ SimpleProviderC.h
+ SimpleProvider_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleProviderC.inl
+ }
+}
+
+project(SimpleCommon_SimpleProvider_exec) : ciao_executor {
+ after += SimpleCommon_SimpleProvider_lem_gen SimpleCommon_SimpleProvider_stub
+ sharedname = SimpleProvider_exec
+ libs += SimpleProvider_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEPROVIDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleProviderEC.cpp
+ SimpleProvider_exec.cpp
+ }
+
+ Header_Files {
+ SimpleProviderEC.h
+ SimpleProvider_exec.h
+ SimpleProvider_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleProviderEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleProvider_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleProvider_exec
+ sharedname = SimpleProvider_svnt
+ libs += SimpleProvider_exec \
+ SimpleProvider_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEPROVIDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleProviderS.cpp
+ SimpleProvider_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleProviderS.h
+ SimpleProvider_svnt.h
+ SimpleProvider_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleProviderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp
new file mode 100644
index 00000000000..0cd1ffe396b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp
@@ -0,0 +1,166 @@
+// $Id$
+
+#include "SimpleProvider_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleProvider_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //==================================================================
+
+ Trigger_exec_i::Trigger_exec_i (bool &triggered)
+ : triggered_ (triggered)
+ {
+ DANCE_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ DANCE_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ DANCE_TRACE ("Trigger_exec_i::hello ()");
+ this->triggered_ = true;
+ // Your code here.
+ ACE_DEBUG ((LM_EMERGENCY, "Trigger_exec_i::hello - "
+ "Got the following information from trig port: %C\n",
+ hello));
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: SimpleProvider_exec_i
+ //==================================================================
+
+ SimpleProvider_exec_i::SimpleProvider_exec_i (void)
+ : triggered_ (false)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::SimpleProvider_exec_i (void)");
+ }
+
+ SimpleProvider_exec_i::~SimpleProvider_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::~SimpleProvider_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ ::Simple::CCM_Trigger_ptr
+ SimpleProvider_exec_i::get_trig ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::get_trig ()");
+ return new Trigger_exec_i (this->triggered_);
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleProvider_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleProvider_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleProvider_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleProvider_exec_i::ccm_remove ()");
+ if (!triggered_)
+ ACE_ERROR ((LM_EMERGENCY, "Error: My facet wasn't triggered!!\n"));
+
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleProviderHome_exec_i
+ //==================================================================
+
+ SimpleProviderHome_exec_i::SimpleProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleProviderHome_exec_i::SimpleProviderHome_exec_i (void)");
+ }
+
+ SimpleProviderHome_exec_i::~SimpleProviderHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleProviderHome_exec_i::~SimpleProviderHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleProviderHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleProviderHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleProvider_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleProviderHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleProviderHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleProviderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h
new file mode 100644
index 00000000000..1ffa389790f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h
@@ -0,0 +1,102 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEPROVIDER_EXEC_H
+#define CIAO_SIMPLEPROVIDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleProviderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleProvider_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleProvider_Impl
+{
+ class SIMPLEPROVIDER_EXEC_Export Trigger_exec_i
+ : public virtual ::Simple::CCM_Trigger,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Trigger_exec_i (bool &);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations from ::Simple::Trigger
+
+ virtual void
+ hello (
+ const char * hello);
+
+ private:
+ bool &triggered_;
+ };
+
+ class SIMPLEPROVIDER_EXEC_Export SimpleProvider_exec_i
+ : public virtual SimpleProvider_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleProvider_exec_i (void);
+ virtual ~SimpleProvider_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual ::Simple::CCM_Trigger_ptr
+ get_trig ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleProvider_Context_var context_;
+ bool triggered_;
+ };
+
+ class SIMPLEPROVIDER_EXEC_Export SimpleProviderHome_exec_i
+ : public virtual SimpleProviderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleProviderHome_exec_i (void);
+ virtual ~SimpleProviderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEPROVIDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleProviderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEPROVIDER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl
new file mode 100644
index 00000000000..cee261fd15a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_PUBLISHER_IDL
+#define SIMPLE_PUBLISHER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimplePublisher
+ {
+ publishes Hello hello;
+ };
+
+ home SimplePublisherHome manages SimplePublisher
+ {
+ };
+};
+
+#endif /*SIMPLE_PUBLISHER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc
new file mode 100644
index 00000000000..a4b4544687d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimplePublisher"
+
+project(SimpleCommon_SimplePublisher_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEPUBLISHER_STUB_Export \
+ -Wb,stub_export_include=SimplePublisher_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEPUBLISHER_SVNT_Export \
+ -Wb,skel_export_include=SimplePublisher_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEPUBLISHER_EXEC_Export \
+ -Wb,exec_export_include=SimplePublisher_exec_export.h \
+
+ IDL_Files {
+ SimplePublisher.idl
+ }
+}
+
+project(SimpleCommon_SimplePublisher_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimplePublisher_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEPUBLISHER_EXEC_Export \
+ -Wb,export_include=SimplePublisher_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimplePublisherE.idl
+ }
+}
+
+project(SimpleCommon_SimplePublisher_stub) : ccm_stub {
+ after += SimpleCommon_SimplePublisher_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimplePublisher_stub
+ dynamicflags = SIMPLEPUBLISHER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimplePublisherC.cpp
+ }
+
+ Header_Files {
+ SimplePublisherC.h
+ SimplePublisher_stub_export.h
+ }
+
+ Inline_Files {
+ SimplePublisherC.inl
+ }
+}
+
+project(SimpleCommon_SimplePublisher_exec) : ciao_executor {
+ after += SimpleCommon_SimplePublisher_lem_gen SimpleCommon_SimplePublisher_stub
+ sharedname = SimplePublisher_exec
+ libs += SimplePublisher_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEPUBLISHER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimplePublisherEC.cpp
+ SimplePublisher_exec.cpp
+ }
+
+ Header_Files {
+ SimplePublisherEC.h
+ SimplePublisher_exec.h
+ SimplePublisher_exec_export.h
+ }
+
+ Inline_Files {
+ SimplePublisherEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimplePublisher_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimplePublisher_exec
+ sharedname = SimplePublisher_svnt
+ libs += SimplePublisher_exec \
+ SimplePublisher_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEPUBLISHER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimplePublisherS.cpp
+ SimplePublisher_svnt.cpp
+ }
+
+ Header_Files {
+ SimplePublisherS.h
+ SimplePublisher_svnt.h
+ SimplePublisher_svnt_export.h
+ }
+
+ Inline_Files {
+ SimplePublisherS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp
new file mode 100644
index 00000000000..9bbc600dd4a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp
@@ -0,0 +1,129 @@
+// $Id$
+
+#include "SimplePublisher_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimplePublisher_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimplePublisher_exec_i
+ //==================================================================
+
+ SimplePublisher_exec_i::SimplePublisher_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::SimplePublisher_exec_i (void)");
+ }
+
+ SimplePublisher_exec_i::~SimplePublisher_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::~SimplePublisher_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimplePublisher_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimplePublisher_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimplePublisher_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::ccm_activate ()");
+ ::Simple::Hello_var hello = new OBV_Simple::Hello ("Test successful, hello from SimplePublisher_exec_i");
+ this->context_->push_hello (hello._retn ());
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimplePublisher_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimplePublisherHome_exec_i
+ //==================================================================
+
+ SimplePublisherHome_exec_i::SimplePublisherHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisherHome_exec_i::SimplePublisherHome_exec_i (void)");
+ }
+
+ SimplePublisherHome_exec_i::~SimplePublisherHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimplePublisherHome_exec_i::~SimplePublisherHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimplePublisherHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimplePublisherHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimplePublisher_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEPUBLISHER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimplePublisherHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimplePublisherHome_Impl (void)");
+
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimplePublisherHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h
new file mode 100644
index 00000000000..0f5ab965757
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEPUBLISHER_EXEC_H
+#define CIAO_SIMPLEPUBLISHER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimplePublisherEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimplePublisher_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimplePublisher_Impl
+{
+ class SIMPLEPUBLISHER_EXEC_Export SimplePublisher_exec_i
+ : public virtual SimplePublisher_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimplePublisher_exec_i (void);
+ virtual ~SimplePublisher_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimplePublisher_Context_var context_;
+ };
+
+ class SIMPLEPUBLISHER_EXEC_Export SimplePublisherHome_exec_i
+ : public virtual SimplePublisherHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimplePublisherHome_exec_i (void);
+ virtual ~SimplePublisherHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEPUBLISHER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimplePublisherHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEPUBLISHER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl
new file mode 100644
index 00000000000..90d4e67e542
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_USER_IDL
+#define SIMPLE_USER_IDL
+
+#include "SimpleCommon.idl"
+#include "Components.idl"
+
+module Simple
+{
+ component SimpleUser
+ {
+ uses Trigger trig;
+ };
+
+ home SimpleUserHome manages SimpleUser
+ {
+ };
+};
+
+#endif /*SIMPLE_USER_IDL*/
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc
new file mode 100644
index 00000000000..ff9215fabda
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser.mpc
@@ -0,0 +1,111 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p SimpleCommon SimpleUser"
+
+project(SimpleCommon_SimpleUser_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLEUSER_STUB_Export \
+ -Wb,stub_export_include=SimpleUser_stub_export.h \
+ -Wb,skel_export_macro=SIMPLEUSER_SVNT_Export \
+ -Wb,skel_export_include=SimpleUser_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLEUSER_EXEC_Export \
+ -Wb,exec_export_include=SimpleUser_exec_export.h \
+ -Gsv
+
+ IDL_Files {
+ SimpleUser.idl
+ }
+}
+
+project(SimpleCommon_SimpleUser_lem_gen) : ciaoidldefaults {
+ after += SimpleCommon_SimpleUser_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SIMPLEUSER_EXEC_Export \
+ -Wb,export_include=SimpleUser_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleUserE.idl
+ }
+}
+
+project(SimpleCommon_SimpleUser_stub) : ccm_stub {
+ after += SimpleCommon_SimpleUser_idl_gen SimpleCommon_stub
+ libs += SimpleCommon_stub
+
+ sharedname = SimpleUser_stub
+ dynamicflags = SIMPLEUSER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleUserC.cpp
+ }
+
+ Header_Files {
+ SimpleUserC.h
+ SimpleUser_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleUserC.inl
+ }
+}
+
+project(SimpleCommon_SimpleUser_exec) : ciao_executor {
+ after += SimpleCommon_SimpleUser_lem_gen SimpleCommon_SimpleUser_stub
+ sharedname = SimpleUser_exec
+ libs += SimpleUser_stub SimpleCommon_stub
+
+ dynamicflags = SIMPLEUSER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleUserEC.cpp
+ SimpleUser_exec.cpp
+ }
+
+ Header_Files {
+ SimpleUserEC.h
+ SimpleUser_exec.h
+ SimpleUser_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleUserEC.inl
+ }
+}
+
+
+project(SimpleCommon_SimpleUser_svnt) : ciao_servant {
+ after += SimpleCommon_skel SimpleCommon_SimpleUser_exec
+ sharedname = SimpleUser_svnt
+ libs += SimpleUser_exec \
+ SimpleUser_stub \
+ SimpleCommon_skel \
+ SimpleCommon_stub
+
+ dynamicflags = SIMPLEUSER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleUserS.cpp
+ SimpleUser_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleUserS.h
+ SimpleUser_svnt.h
+ SimpleUser_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleUserS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp
new file mode 100644
index 00000000000..c27e6dc4c48
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp
@@ -0,0 +1,151 @@
+// $Id$
+
+#include "SimpleUser_exec.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleUser_exec_i
+ //==================================================================
+
+ SimpleUser_exec_i::SimpleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::SimpleUser_exec_i (void)");
+ }
+
+ SimpleUser_exec_i::~SimpleUser_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::~SimpleUser_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleUser_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::set_session_context ()");
+ this->context_ =
+ ::Simple::CCM_SimpleUser_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleUser_exec_i::configuration_complete ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleUser_exec_i::ccm_activate ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::ccm_activate ()");
+
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Reference nil for port trig\n"));
+ return;
+ }
+
+ // Your code here.
+ try
+ {
+ trig->hello ("Test successful; hello from SimpleUser.");
+ }
+ catch (CORBA::Exception &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ }
+
+ void
+ SimpleUser_exec_i::ccm_passivate ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleUser_exec_i::ccm_remove ()
+ {
+ DANCE_TRACE ("SimpleUser_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleUserHome_exec_i
+ //==================================================================
+
+ SimpleUserHome_exec_i::SimpleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUserHome_exec_i::SimpleUserHome_exec_i (void)");
+ }
+
+ SimpleUserHome_exec_i::~SimpleUserHome_exec_i (void)
+ {
+ DANCE_TRACE ("SimpleUserHome_exec_i::~SimpleUserHome_exec_i (void)");
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleUserHome_exec_i::create ()
+ {
+ DANCE_TRACE ("SimpleUserHome_exec_i::create ()");
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleUser_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleUserHome_Impl (void)
+ {
+ DANCE_TRACE ("create_Simple_SimpleUserHome_Impl (void)");
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleUserHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h
new file mode 100644
index 00000000000..7041ae92ba4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h
@@ -0,0 +1,80 @@
+// $Id$
+
+#ifndef CIAO_SIMPLEUSER_EXEC_H
+#define CIAO_SIMPLEUSER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleUserEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleUser_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Simple_SimpleUser_Impl
+{
+ class SIMPLEUSER_EXEC_Export SimpleUser_exec_i
+ : public virtual SimpleUser_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleUser_exec_i (void);
+ virtual ~SimpleUser_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Simple::CCM_SimpleUser_Context_var context_;
+ };
+
+ class SIMPLEUSER_EXEC_Export SimpleUserHome_exec_i
+ : public virtual SimpleUserHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleUserHome_exec_i (void);
+ virtual ~SimpleUserHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLEUSER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Simple_SimpleUserHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLEUSER_EXEC_H */
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp
new file mode 100644
index 00000000000..80901f25ca4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtActivate.cdp
@@ -0,0 +1,133 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>1NodePlan</label>
+ <UUID>1NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp
new file mode 100644
index 00000000000..8874e3f840a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeFailureAtStartup.cdp
@@ -0,0 +1,133 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>1NodePlan</label>
+ <UUID>1NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp
new file mode 100644
index 00000000000..8f773621a35
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/1NodeNoFailure.cdp
@@ -0,0 +1,133 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>1NodePlan</label>
+ <UUID>1NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp
new file mode 100644
index 00000000000..32fae58667c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtActivate.cdp
@@ -0,0 +1,184 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>2NodePlan</label>
+ <UUID>2NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp
new file mode 100644
index 00000000000..db0b5b819b4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeFailureAtStartup.cdp
@@ -0,0 +1,184 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>2NodePlan</label>
+ <UUID>2NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp
new file mode 100644
index 00000000000..b6a600d09af
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/2NodeNoFailure.cdp
@@ -0,0 +1,184 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>2NodePlan</label>
+ <UUID>2NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp
new file mode 100644
index 00000000000..9f6315a7ca7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtActivate.cdp
@@ -0,0 +1,331 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>5NodePlan</label>
+ <UUID>5NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Three -->
+
+ <instance xmi:id="SimpleFailureHome3Instance">
+ <name>SimpleFailureHome3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent3Instance">
+ <name>SimpleFailureComponent3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome3</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Four -->
+
+ <instance xmi:id="SimpleFailureHome4Instance">
+ <name>SimpleFailureHome4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent4Instance">
+ <name>SimpleFailureComponent4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome4</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_ACTIVATE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Five -->
+
+ <instance xmi:id="SimpleFailureHome5Instance">
+ <name>SimpleFailureHome5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent5Instance">
+ <name>SimpleFailureComponent5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome5</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp
new file mode 100644
index 00000000000..37718ae6dd1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeFailureAtStartup.cdp
@@ -0,0 +1,331 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>5NodePlan</label>
+ <UUID>5NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Three -->
+
+ <instance xmi:id="SimpleFailureHome3Instance">
+ <name>SimpleFailureHome3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent3Instance">
+ <name>SimpleFailureComponent3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome3</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Four -->
+
+ <instance xmi:id="SimpleFailureHome4Instance">
+ <name>SimpleFailureHome4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent4Instance">
+ <name>SimpleFailureComponent4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome4</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>AT_STARTUP</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Five -->
+
+ <instance xmi:id="SimpleFailureHome5Instance">
+ <name>SimpleFailureHome5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent5Instance">
+ <name>SimpleFailureComponent5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome5</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp
new file mode 100644
index 00000000000..f01b0da8266
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/5NodeNoFailure.cdp
@@ -0,0 +1,331 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>5NodePlan</label>
+ <UUID>5NodePlan</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleFailureHomeImplementation">
+ <name>SimpleFailureHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleFailureHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailure_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleFailureComponentImplementation">
+ <name>SimpleFailureComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleFailure_ExecArtifact" />
+ <artifact xmi:idref="SimpleFailure_SvntArtifact" />
+ </implementation>
+
+ <!-- Node One -->
+
+ <instance xmi:id="SimpleFailureHomeInstance">
+ <name>SimpleFailureHome</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponentInstance">
+ <name>SimpleFailureComponent</name>
+ <node>Node1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Two -->
+
+ <instance xmi:id="SimpleFailureHome2Instance">
+ <name>SimpleFailureHome2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent2Instance">
+ <name>SimpleFailureComponent2</name>
+ <node>Node2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome2</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Three -->
+
+ <instance xmi:id="SimpleFailureHome3Instance">
+ <name>SimpleFailureHome3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent3Instance">
+ <name>SimpleFailureComponent3</name>
+ <node>Node3</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome3</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Four -->
+
+ <instance xmi:id="SimpleFailureHome4Instance">
+ <name>SimpleFailureHome4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent4Instance">
+ <name>SimpleFailureComponent4</name>
+ <node>Node4</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome4</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Node Five -->
+
+ <instance xmi:id="SimpleFailureHome5Instance">
+ <name>SimpleFailureHome5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleFailureComponent5Instance">
+ <name>SimpleFailureComponent5</name>
+ <node>Node5</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleFailureComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleFailureHome5</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>type_attr</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FailureType</name>
+ <typeId>IDL:Simple/FailureType:1.0</typeId>
+ <member>NO_FAILURE</member>
+ <member>AT_STARTUP</member>
+ <member>AT_ACTIVATE</member>
+ <member>AT_PASSIVATE</member>
+ <member>AT_REMOVE</member>
+ </enum>
+ </type>
+ <value>
+ <enum>NO_FAILURE</enum>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleFailure_ExecArtifact">
+ <name>SimpleFailure_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleFailure_SvntArtifact">
+ <name>SimpleFailure_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleFailure_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt
new file mode 100644
index 00000000000..598249c57c7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/README.txt
@@ -0,0 +1,8 @@
+
+ This script tests redeployment of plans in after initial launch failures.
+ Each test uses 2 descriptors; teh first with a configured launch failure,
+ the second for the same plan except the configured failure.
+
+ As of this moment (2010-03-25) all these tests fail because of shortcomings
+ in the exception handling and teardown logic of the node entities.
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl
new file mode 100755
index 00000000000..5b5eb104ee3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Launch-Failures/run_test.pl
@@ -0,0 +1,269 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+$app_running = 0;
+
+$nr_daemon = 2;
+$port_start = 60001;
+$iorbase = "NodeApp";
+@iorfiles = 0;
+$nodebase = "Node";
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$nofail_plan = 'SimpleNoFailure.cdp';
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ @tg_daemons = 0;
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('..');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ @iorfiles = 0;
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ("$iorbase$i.ior");
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ("$iorbase$i.ior");
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ $tg_daemons[$i]->DeleteFile ("$iorbase$i.ior");
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorname = "$iorbase$i.ior";
+ $iorfile = $iorfiles[$i];
+ $port = $port_start+$i;
+ $nodename = $nodebase . ($i + 1);
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run node daemon \#$nodename\n";
+ $tg_daemons[$i]->SetEnv ("NameServiceIOR", $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorname,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+foreach $file (@files) {
+ if ($file =~ /NoFailure/) {
+ next;
+ }
+
+ print "Starting test for deployment $file\n";
+
+ # determin number of daemons required
+ if ($file =~ /^(\d+)Node/) {
+ $nr_daemon = int($1);
+ } else {
+ # assume 1
+ $nr_daemon = 1;
+ }
+
+ create_targets ();
+ init_ior_files ();
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60000 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+ }
+
+ $ns_running = 1;
+ # Set up NamingService environment
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60000/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60000/NameService");
+
+ # Invoke node daemon(s).
+ print "Invoking $nr_daemon node daemon(s)\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $em_running = 1;
+
+ # Invoke executor - start the application -.
+ # (redirect log so testoutput doesn't show expected errors)
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l -ORBLogFile dummy.log");
+ $status = $E->SpawnWaitKill (120);
+ if ($status > 0) {
+ print "Launch failed as expected\n";
+
+ print "Teardown the application and attempt relaunch without failure\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $status = $E->SpawnWaitKill (120);
+ if ($status >= 0) {
+ # cleanup any leftover comp.servers (might happen when not correctly
+ # started or torn down) otherwise we won't be able to start new ones
+ $tg_executor->KillAll ('ciao_componentserver');
+
+ $file =~ s/Failure.*\.cdp$/NoFailure.cdp/;
+
+ # Invoke executor - restart the application -.
+ print "Invoking executor - relaunch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l -ORBLogFile dummy.log");
+ $status = $E->SpawnWaitKill (120);
+ if ($status != 0) {
+ print STDERR "ERROR: Unexpected error from Launch operation [$status]!\n"
+ }
+
+ $app_running = 1;
+
+ } else {
+ print STDERR "ERROR: Unexpected error from Teardown operation [$status]!\n";
+ }
+ }
+ else {
+ print STDERR "ERROR: Unexpected result from Launch operation [$status]!\n";
+
+ $app_running = 1;
+ }
+
+ if ($app_running) {
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+ }
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt
new file mode 100644
index 00000000000..cc2a15cd0b9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/README.txt
@@ -0,0 +1,8 @@
+
+ This script tests redeployment of plans in 'normal' (i.e. non-failure)
+ situations.
+ The script tests the plans from the ExecutionManager-Deployment directory.
+
+ As of this moment (2010-03-25) the components used in several of the plans
+ seem to have problems with the new asynchronous deployment.
+
diff --git a/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl
new file mode 100755
index 00000000000..b473b6ea233
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/EM-Redeployment/run_test.pl
@@ -0,0 +1,223 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$repeat = 1;
+
+$nr_daemon = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('..');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run node daemon\n";
+ $tg_daemons[$i]->SetEnv ("NameServiceIOR", $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, "../ExecutionManager-Deployments");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ $file = '../ExecutionManager-Deployments/'.$file;
+ print "Starting redeployment test for $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+ }
+
+ $ns_running = 1;
+ # Set up NamingService environment
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+
+ # Invoke node daemon.
+ print "Invoking node daemon\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $em_running = 1;
+
+ for ($i = 0; $i <= $repeat; ++$i) {
+ my $iteration = $i+1;
+ # Invoke executor - start the application -.
+ print "#$iteration - Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l");
+ $E->SpawnWaitKill (120);
+
+ print "#$iteration - Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $E->SpawnWaitKill (120);
+ print "#$iteration - Executor finished.\n";
+ }
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..01c13b3f3d1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleEmitterHomeImplementation">
+ <name>SimpleEmitterHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleEmitterComponentImplementation">
+ <name>SimpleEmitterComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleEmitterHomeInstance">
+ <name>SimpleEmitterHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleEmitterComponentInstance">
+ <name>SimpleEmitterComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance xmi:idref="SimpleEmitterComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleEmitter_ExecArtifact">
+ <name>SimpleEmitter_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleEmitter_SvntArtifact">
+ <name>SimpleEmitter_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..6c01f6d36d6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp
@@ -0,0 +1,238 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleEmitterHomeImplementation">
+ <name>SimpleEmitterHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleEmitterComponentImplementation">
+ <name>SimpleEmitterComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleEmitterHomeInstance">
+ <name>SimpleEmitterHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleEmitterComponentInstance">
+ <name>SimpleEmitterComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleEmitterComponent</location>
+ <provider>false</provider>
+ <portName>hello</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleEmitter_ExecArtifact">
+ <name>SimpleEmitter_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleEmitter_SvntArtifact">
+ <name>SimpleEmitter_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..c5bc81c852a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..fcb44451caa
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp
@@ -0,0 +1,339 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponentReverse</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnection_2</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse_2</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp
new file mode 100644
index 00000000000..6e00f7d41a8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_DP.cdp
@@ -0,0 +1,352 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponentReverse</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnection_2</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse_2</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleMultipleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp
new file mode 100644
index 00000000000..e5a4daa60c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS_PL_SP.cdp
@@ -0,0 +1,348 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserComponentReverse</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnection_2</name>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse_2</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponentReverse</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..32747bfc1bf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimplePublisherHomeImplementation">
+ <name>SimplePublisherHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimplePublisherComponentImplementation">
+ <name>SimplePublisherComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimplePublisherHomeInstance">
+ <name>SimplePublisherHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimplePublisherComponentInstance">
+ <name>SimplePublisherComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SimplePublisherComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimplePublisher_ExecArtifact">
+ <name>SimplePublisher_exec</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_exec</location>
+ </artifact>
+ <artifact xmi:id="SimplePublisher_SvntArtifact">
+ <name>SimplePublisher_svnt</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..054e7964bea
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp
@@ -0,0 +1,244 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimplePublisherHomeImplementation">
+ <name>SimplePublisherHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimplePublisherComponentImplementation">
+ <name>SimplePublisherComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimplePublisherHomeInstance">
+ <name>SimplePublisherHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimplePublisherComponentInstance">
+ <name>SimplePublisherComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherComponentInstance</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <!--<internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SimplePublisherComponentInstance" />
+ </internalEndpoint>-->
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimplePublisherComponentInstance</location>
+ <provider>false</provider>
+ <portName>hello</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimplePublisher_ExecArtifact">
+ <name>SimplePublisher_exec</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_exec</location>
+ </artifact>
+ <artifact xmi:id="SimplePublisher_SvntArtifact">
+ <name>SimplePublisher_svnt</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp
new file mode 100644
index 00000000000..e9af75b1ac4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp
@@ -0,0 +1,113 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNullHomeImplementation">
+ <name>SimpleNullHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleNullHomeInstance">
+ <name>SimpleNullHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNullComponentInstance">
+ <name>SimpleNullComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNullHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp
new file mode 100644
index 00000000000..f50259d17a6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation.cdp
@@ -0,0 +1,127 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp
new file mode 100644
index 00000000000..bed7f909530
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_2.cdp
@@ -0,0 +1,168 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp
new file mode 100644
index 00000000000..b8aa525c2b2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleProcessColocation_Default.cdp
@@ -0,0 +1,208 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_1">
+ <name>ProcessColocationComponent_Default_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_2">
+ <name>ProcessColocationComponent_Default_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..8283e9e869a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp
new file mode 100644
index 00000000000..799ec7d5fa6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp
@@ -0,0 +1,284 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp
new file mode 100644
index 00000000000..58eec7a4ff8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_DP.cdp
@@ -0,0 +1,297 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp
new file mode 100644
index 00000000000..fff2817c3ab
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS_PL_SP.cdp
@@ -0,0 +1,293 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleProviderComponent</location>
+ <provider>true</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="SimpleProviderHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleProviderComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleUserHomeInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstance" />
+ <constrainedInstance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp
new file mode 100644
index 00000000000..e9539795797
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp
@@ -0,0 +1,262 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNilFacetProviderHomeImplementation">
+ <name>SimpleNilFacetProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNilFacetProviderComponentImplementation">
+ <name>SimpleNilFacetProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleNilFacetUserHomeImplementation">
+ <name>SimpleNilFacetUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNilFacetUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNilFacetUserComponentImplementation">
+ <name>SimpleNilFacetUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNilFacetUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleNilFacetUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleNilFacetProviderHomeInstance">
+ <name>SimpleNilFacetProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetProviderComponentInstance">
+ <name>SimpleNilFacetProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetUserHomeInstance">
+ <name>SimpleNilFacetUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetUserComponentInstance">
+ <name>SimpleNilFacetUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleNilFacetUserComponentInstanceReverse">
+ <name>SimpleNilFacetUserComponentReverse</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNilFacetUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNilFacetUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleNilFacetProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleNilFacetUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleNilFacetUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleNilFacetProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNilFacetProvider_ExecArtifact">
+ <name>SimpleNilFacetProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNilFacetProvider_SvntArtifact">
+ <name>SimpleNilFacetProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleNilFacetUser_ExecArtifact">
+ <name>SimpleNilFacetUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNilFacetUser_SvntArtifact">
+ <name>SimpleNilFacetUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNilFacetUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
new file mode 100755
index 00000000000..8cca3466bed
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
@@ -0,0 +1,224 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('..');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run node daemon\n";
+
+ ## add NameService env setting to node targets
+ $tg_daemons[$i]->SetEnv ('NameServiceIOR', $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+ }
+
+ $ns_running = 1;
+ # Set up NamingService environment
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+
+ # Invoke node daemon.
+ print "Invoking node daemon\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $em_running = 1;
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -k file://$ior_emfile -l");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $file -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ delete_ior_files ();
+ kill_open_processes ();
+
+ $daemons_running = 0;
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl
new file mode 100755
index 00000000000..901a98944bc
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test_cdr.pl
@@ -0,0 +1,241 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+$tg_convert_plan = 0;
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+2) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('..');
+
+ $tg_convert_plan = PerlACE::TestTarget::create_target (1) || die "Could not create target for convert plan\n";
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ # in case shutdown did not perform as expected
+ $tg_daemons[$i]->KillAll ('ciao_componentserver');
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $node_host = $tg_daemons[$i]->HostName ();
+ $iiop = "iiop://$node_host:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run node daemon\n";
+ $tg_daemons[$i]->SetEnv ("NameServiceIOR", $tg_exe_man->GetEnv ("NameServiceIOR"));
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ my $ns_host = $tg_naming->HostName ();
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://$ns_host:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+ }
+
+ $ns_running = 1;
+ # Set up NamingService environment
+ $tg_exe_man->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+ $tg_executor->SetEnv ("NameServiceIOR", "corbaloc:iiop:$ns_host:60003/NameService");
+
+ # Invoke node daemon.
+ print "Invoking node daemon\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke execution manager.
+ print "Invoking execution manager\n";
+ $EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $em_running = 1;
+
+ print "Converting plan to CDR representation\n";
+ $cdr_planbase = "$file" . ".cdr";
+ $cdr_plan = $tg_convert_plan->LocalFile ($cdr_planbase);
+ $convert = $tg_convert_plan->CreateProcess("$DANCE_ROOT/bin/dance_convert_plan",
+ "-x $file -o $cdr_plan");
+
+ $convert->Spawn ();
+
+ if ($tg_convert_plan->WaitForFileTimed ($cdr_planbase,
+ 30) == -1) {
+ print STDERR "ERROR: Convert Plan failed to output $cdr_plan.\n";
+ kill_open_processes ();
+ next;
+ }
+
+ $convert->Kill ();
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-c $cdr_plan -k file://$ior_emfile -l");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -c $cdr_plan -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ $tg_convert_plan->DeleteFile ($cdr_planbase);
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..6ac17b1e9e9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleEmitterHomeImplementation">
+ <name>SimpleEmitterHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleEmitterHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitter_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleEmitterComponentImplementation">
+ <name>SimpleEmitterComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleEmitter_ExecArtifact" />
+ <artifact xmi:idref="SimpleEmitter_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleEmitterHomeInstance">
+ <name>SimpleEmitterHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleEmitterComponentInstance">
+ <name>SimpleEmitterComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleEmitterComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleEmitterHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance xmi:idref="SimpleEmitterComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleEmitter_ExecArtifact">
+ <name>SimpleEmitter_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleEmitter_SvntArtifact">
+ <name>SimpleEmitter_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleEmitter_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..45ff31929c3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserHomeImplementation">
+ <name>SimpleMultipleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleMultipleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleMultipleUserComponentImplementation">
+ <name>SimpleMultipleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleMultipleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleMultipleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserHomeInstance">
+ <name>SimpleMultipleUserHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstance">
+ <name>SimpleMultipleUserComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleMultipleUserComponentInstanceReverse">
+ <name>SimpleMultipleUserComponentReverse</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleMultipleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleMultipleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleMultipleUser_ExecArtifact">
+ <name>SimpleMultipleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleMultipleUser_SvntArtifact">
+ <name>SimpleMultipleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleMultipleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..53a0a54482d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp
@@ -0,0 +1,227 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimplePublisherHomeImplementation">
+ <name>SimplePublisherHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimplePublisherHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisher_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimplePublisherComponentImplementation">
+ <name>SimplePublisherComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimplePublisher_ExecArtifact" />
+ <artifact xmi:idref="SimplePublisher_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerHomeImplementation">
+ <name>SimpleConsumerHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleConsumerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumer_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleConsumerComponentImplementation">
+ <name>SimpleConsumerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleConsumer_ExecArtifact" />
+ <artifact xmi:idref="SimpleConsumer_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimplePublisherHomeInstance">
+ <name>SimplePublisherHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimplePublisherComponentInstance">
+ <name>SimplePublisherComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimplePublisherComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimplePublisherHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleConsumerHomeInstance">
+ <name>SimpleConsumerHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleConsumerComponentInstance">
+ <name>SimpleConsumerComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleConsumerComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleConsumerHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>hello</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="SimplePublisherComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hello_</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="SimpleConsumerComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimplePublisher_ExecArtifact">
+ <name>SimplePublisher_exec</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_exec</location>
+ </artifact>
+ <artifact xmi:id="SimplePublisher_SvntArtifact">
+ <name>SimplePublisher_svnt</name>
+ <source/>
+ <node/>
+ <location>SimplePublisher_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleConsumer_ExecArtifact">
+ <name>SimpleConsumer_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleConsumer_SvntArtifact">
+ <name>SimpleConsumer_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleConsumer_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp
new file mode 100644
index 00000000000..d66eef2c70b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp
@@ -0,0 +1,179 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleAttributeHomeImplementation">
+ <name>SimpleAttributeHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleAttribute_ExecArtifact" />
+ <artifact xmi:idref="SimpleAttribute_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleAttributeHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleAttributeHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleAttribute_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleAttribute_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleAttributeComponentImplementation">
+ <name>SimpleAttributeComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleAttribute_ExecArtifact" />
+ <artifact xmi:idref="SimpleAttribute_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleAttributeHomeInstance">
+ <name>SimpleAttributeHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleAttributeHomeImplementation" />
+ <configProperty>
+ <name>str_attr</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Initialized Attribute!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>long_attr</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>1</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>short_attr</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>1</short>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleAttributeComponentInstance">
+ <name>SimpleAttributeComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleAttributeComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleAttributeHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>str_attr</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Initialized Attribute!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>long_attr</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>1</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>short_attr</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>1</short>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleAttribute_ExecArtifact">
+ <name>SimpleAttribute_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleAttribute_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleAttribute_SvntArtifact">
+ <name>SimpleAttribute_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleAttribute_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp
new file mode 100644
index 00000000000..5632d219c48
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp
@@ -0,0 +1,113 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNullHomeImplementation">
+ <name>SimpleNullHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleNullHomeInstance">
+ <name>SimpleNullHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleNullComponentInstance">
+ <name>SimpleNullComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNullHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
new file mode 100644
index 00000000000..e31930188d2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
@@ -0,0 +1,86 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNull_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNull_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="SimpleNullComponentInstance">
+ <name>SimpleNullComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullComponentImplementation" />
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp
new file mode 100644
index 00000000000..a63da21f0f6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp
@@ -0,0 +1,90 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleNullHomeImplementation">
+ <name>SimpleNullHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleNull_ExecArtifact" />
+ <artifact xmi:idref="SimpleNull_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleNullHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleNull_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance xmi:id="SimpleNullHomeInstance">
+ <name>SimpleNullHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleNullHomeImplementation" />
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleNull_ExecArtifact">
+ <name>SimpleNull_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleNull_SvntArtifact">
+ <name>SimpleNull_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleNull_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp
new file mode 100644
index 00000000000..f7cc1b23270
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp
@@ -0,0 +1,127 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp
new file mode 100644
index 00000000000..23da5a45e3b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp
@@ -0,0 +1,168 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp
new file mode 100644
index 00000000000..68ea0ce0c70
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp
@@ -0,0 +1,208 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <implementation xmi:id="ProcessColocationComponentImplementation">
+ <name>ProcessColocationComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="ProcessColocation_ExecArtifact" />
+ <artifact xmi:idref="ProcessColocation_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProcessColocation_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProcessColocation_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_1">
+ <name>ProcessColocationComponent_Default_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_Default_2">
+ <name>ProcessColocationComponent_Default_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Process</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1">
+ <name>ProcessColocationComponent_One</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_1_2">
+ <name>ProcessColocationComponent_One_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process One</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2">
+ <name>ProcessColocationComponent_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="ProcessColocationComponentInstance_2_2">
+ <name>ProcessColocationComponent_Two_Two</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProcessColocationComponentImplementation" />
+ <configProperty>
+ <name>process_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Process Two</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="ProcessColocation_ExecArtifact">
+ <name>ProcessColocation_exec</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_exec</location>
+ </artifact>
+ <artifact xmi:id="ProcessColocation_SvntArtifact">
+ <name>ProcessColocation_svnt</name>
+ <source/>
+ <node/>
+ <location>ProcessColocation_svnt</location>
+ </artifact>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_1_2" />
+ </localityConstraint>
+
+ <localityConstraint>
+ <constraint>SameProcess</constraint>
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2" />
+ <constrainedInstance xmi:idref="ProcessColocationComponentInstance_2_2" />
+ </localityConstraint>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp
new file mode 100644
index 00000000000..f3f1e1ca6e9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp
@@ -0,0 +1,262 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp
new file mode 100644
index 00000000000..e02732e05bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp
@@ -0,0 +1,281 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstanceOne">
+ <name>SimpleProviderComponentOne</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstanceReverse">
+ <name>SimpleUserComponentReverse</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstanceReverse" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
new file mode 100755
index 00000000000..71c656d841b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
@@ -0,0 +1,207 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 1;
+@ports = ( 60001 );
+@iorbases = ( "NodeApp1.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+$ior_applicationbase = "Node_APP.ior";
+$ior_application = 0;
+$ior_ambase = "Node_AM.ior";
+$ior_am = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ # $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ #$tg_executor->AddLibPath ('..');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ $ior_application = $tg_executor->LocalFile ($ior_applicationbase);
+ $ior_am = $tg_executor->LocalFile ($ior_ambase);
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+
+ $tg_executor->DeleteFile ($ior_applicationbase);
+ $tg_executor->DeleteFile ($ior_ambase);
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('ciao_componentserver');
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run node daemon\n";
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+ }
+
+ $ns_running = 1;
+ # Set up NamingService environment
+ $ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+ # Invoke node daemon.
+ print "Invoking node daemon\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $file -n file://NodeApp1.ior -l -oNode");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-n file://NodeApp1.ior -a file://$ior_application -m file://$ior_am -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl
new file mode 100755
index 00000000000..8c09290d6dc
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test_cdr.pl
@@ -0,0 +1,227 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 1;
+@ports = ( 60001 );
+@iorbases = ( "NodeApp1.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne" );
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+$ior_applicationbase = "Node_APP.ior";
+$ior_application = 0;
+$ior_ambase = "Node_AM.ior";
+$ior_am = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+$tg_convert_plan = 0;
+
+$status = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('..');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ # $tg_exe_man->AddLibPath ('..');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ #$tg_executor->AddLibPath ('..');
+
+ $tg_convert_plan = PerlACE::TestTarget::create_target (1) || die "Could not create target for convert plan\n";
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ $ior_application = $tg_executor->LocalFile ($ior_applicationbase);
+ $ior_am = $tg_executor->LocalFile ($ior_ambase);
+
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemon {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemon ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill (); $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill (); $NS->TimedWait (1);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('ciao_componentserver');
+}
+
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService";
+
+ print "Run node daemon\n";
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == -1) {
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+}
+else {
+ @files = @ARGV;
+}
+
+create_targets ();
+init_ior_files ();
+
+foreach $file (@files) {
+ print "Starting test for deployment $file\n";
+
+ print STDERR "Starting Naming Service\n";
+
+ $NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+ $NS->Spawn ();
+
+ if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+ }
+
+ $ns_running = 1;
+ # Set up NamingService environment
+ $ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+ # Invoke node daemon.
+ print "Invoking node daemon\n";
+ $status = run_node_daemons ();
+
+ if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+ }
+
+ $daemons_running = 1;
+
+ print "Converting plan to CDR representation\n";
+ $cdr_planbase = "$file" . ".cdr";
+ $cdr_plan = $tg_convert_plan->LocalFile ($cdr_planbase);
+ $convert = $tg_convert_plan->CreateProcess("$DANCE_ROOT/bin/dance_convert_plan",
+ "-x $file -o $cdr_plan");
+
+ $convert->Spawn ();
+
+ if ($tg_convert_plan->WaitForFileTimed ($cdr_planbase,
+ 30) == -1) {
+ print STDERR "ERROR: Convert Plan failed to output $cdr_plan.\n";
+ kill_open_processes ();
+ next;
+ }
+
+ $convert->Kill ();
+
+ # Invoke executor - start the application -.
+ print "Invoking executor - launch the application -\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-c $file.cdr -n file://NodeApp1.ior -l -oNode");
+ $E->SpawnWaitKill (120);
+
+ print "Teardown the application\n";
+ $E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-n file://NodeApp1.ior -a file://Node_APP.ior -m file://Node_AM.ior -s");
+ $E->SpawnWaitKill (120);
+ print "Executor finished.\n";
+
+ $tg_convert_plan->DeleteFile ($cdr_planbase);
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat
new file mode 100644
index 00000000000..b1a16bd0c28
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/NodeManagerMap.dat
@@ -0,0 +1,4 @@
+NodeOne corbaloc:iiop:localhost:60001/NodeOne.NodeManager
+
+
+NodeTwo corbaloc:iiop:localhost:60002/NodeTwo.NodeManager
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp
new file mode 100644
index 00000000000..ee716fd3187
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_A.cdp
@@ -0,0 +1,120 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>Progressive_A</label>
+ <UUID>Progressive_A</UUID>
+
+ <!-- Implementations declarations -->
+ <implementation xmi:id="ProgressiveHomeImplementation">
+ <name>ProgressiveHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="ProgressiveComponentImplementation">
+ <name>ProgressiveComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="ProgressiveHomeInstance">
+ <name>ProgressiveHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="ProgressiveComponentInstance">
+ <name>ProgressiveComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProgressiveHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_A</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <artifact xmi:id="Progressive_ExecArtifact">
+ <name>Progressive_exec</name>
+ <source/>
+ <node/>
+ <location>Progressive_exec</location>
+ </artifact>
+ <artifact xmi:id="Progressive_SvntArtifact">
+ <name>Progressive_svnt</name>
+ <source/>
+ <node/>
+ <location>Progressive_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp
new file mode 100644
index 00000000000..6642f413142
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_B.cdp
@@ -0,0 +1,136 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>Progressive_B</label>
+ <UUID>Progressive_B</UUID>
+
+ <!-- Implementations declarations -->
+ <implementation xmi:id="ProgressiveHomeImplementation">
+ <name>ProgressiveHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_ProgressiveHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="ProgressiveComponentImplementation">
+ <name>ProgressiveComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Progressive_ExecArtifact" />
+ <artifact xmi:idref="Progressive_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="ProgressiveHomeInstance">
+ <name>ProgressiveHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="ProgressiveComponentInstance">
+ <name>ProgressiveComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ProgressiveComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ProgressiveHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Progressive_B</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig_out</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ProgressiveComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#Progressive_A</location>
+ <provider>true</provider>
+ <portName>trig_in</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <artifact xmi:id="Progressive_ExecArtifact">
+ <name>Progressive_exec</name>
+ <source/>
+ <node/>
+ <location>Progressive_exec</location>
+ </artifact>
+ <artifact xmi:id="Progressive_SvntArtifact">
+ <name>Progressive_svnt</name>
+ <source/>
+ <node/>
+ <location>Progressive_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp
new file mode 100644
index 00000000000..dc62694effa
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/Plan_C.cdp
@@ -0,0 +1,265 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>SimpleComponent_Home</label>
+ <UUID>SimpleComponent_Home</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="SimpleProviderHomeImplementation">
+ <name>SimpleProviderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleProviderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProvider_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleProviderComponentImplementation">
+ <name>SimpleProviderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleProvider_ExecArtifact" />
+ <artifact xmi:idref="SimpleProvider_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="SimpleUserHomeImplementation">
+ <name>SimpleUserHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Simple_SimpleUserHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUser_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="SimpleUserComponentImplementation">
+ <name>SimpleUserComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="SimpleUser_ExecArtifact" />
+ <artifact xmi:idref="SimpleUser_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="SimpleProviderHomeInstance">
+ <name>SimpleProviderHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleProviderComponentInstance">
+ <name>SimpleProviderComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleProviderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleProviderComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="SimpleUserHomeInstance">
+ <name>SimpleUserHome</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserHomeImplementation" />
+ </instance>
+
+ <instance xmi:id="SimpleUserComponentInstance">
+ <name>SimpleUserComponent</name>
+ <node>NodeTwo</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SimpleUserComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SimpleUserComponent</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>TestConnection</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#Progressive_A</location>
+ <provider>false</provider>
+ <portName>trig_out</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>TestConnectionReverse</name>
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#Progressive_B</location>
+ <provider>true</provider>
+ <portName>trig_in</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="SimpleProvider_ExecArtifact">
+ <name>SimpleProvider_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleProvider_SvntArtifact">
+ <name>SimpleProvider_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleProvider_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="SimpleUser_ExecArtifact">
+ <name>SimpleUser_exec</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_exec</location>
+ </artifact>
+ <artifact xmi:id="SimpleUser_SvntArtifact">
+ <name>SimpleUser_svnt</name>
+ <source/>
+ <node/>
+ <location>SimpleUser_svnt</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl
new file mode 100755
index 00000000000..c06d1ad5bcf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Progressive_Deployments/run_test.pl
@@ -0,0 +1,245 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$nr_daemon = 2;
+@ports = ( 60001, 60002 );
+@iorbases = ( "NodeApp1.ior", "NodeApp2.ior" );
+@iorfiles = 0;
+@nodenames = ( "NodeOne", "NodeTwo" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+
+# ior files other than daemon
+$ior_nsbase = "ns.ior";
+$ior_nsfile = 0;
+$ior_embase = "EM.ior";
+$ior_emfile = 0;
+
+# Processes
+$E = 0;
+$EM = 0;
+$NS = 0;
+@DEAMONS = 0;
+
+# targets
+@tg_daemons = 0;
+$tg_naming = 0;
+$tg_exe_man = 0;
+$tg_executor = 0;
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+ $tg_naming->AddLibPath ('../lib');
+ # daemon
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i] = PerlACE::TestTarget::create_target ($i+1) || die "Create target for deamon $i failed\n";
+ $tg_daemons[$i]->AddLibPath ('../Components');
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ $tg_exe_man->AddLibPath ('../lib');
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\n";
+ $tg_executor->AddLibPath ('../lib');
+}
+
+sub init_ior_files {
+ $ior_nsfile = $tg_naming->LocalFile ($ior_nsbase);
+ $ior_emfile = $tg_exe_man->LocalFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+ delete_ior_files ();
+}
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $tg_daemons[$i]->DeleteFile ($iorbases[$i]);
+ }
+ $tg_naming->DeleteFile ($ior_nsbase);
+ $tg_exe_man->DeleteFile ($ior_embase);
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorfiles[$i] = $tg_daemons[$i]->LocalFile ($iorbases[$i]);
+ }
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill ();
+ $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill ();
+ $NS->TimedWait (1);
+ }
+ # in case shutdown did not perform as expected
+ $tg_executor->KillAll ('ciao_componentserver');
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $nr_daemon; ++$i) {
+ $iorbase = $iorbases[$i];
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService";
+
+ print "Run dance_node_manager with $d_param\n";
+
+ $DEAMONS[$i] = $tg_daemons[$i]->CreateProcess ($d_cmd, $d_param);
+ $DEAMONS[$i]->Spawn ();
+
+ if ($tg_daemons[$i]->WaitForFileTimed($iorbase,
+ $tg_daemons[$i]->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $DEAMONS[$i]->Kill (); $DEAMONS[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+create_targets ();
+init_ior_files ();
+
+# Invoke naming service
+
+$NS = $tg_naming->CreateProcess ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o $ior_nsfile");
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+$ns_status = $NS->Spawn ();
+
+if ($ns_status != 0) {
+ print STDERR "ERROR: Unable to execute the naming service\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if ($tg_naming->WaitForFileTimed ($ior_nsbase,
+ $tg_naming->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill (); $NS->TimedWait (1);
+ exit 1;
+}
+
+$ns_running = 1;
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+# Invoke node daemon.
+print "Invoking node daemon\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$daemons_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager (dance_execution_manager.exe) with -e$ior_emfile\n";
+$EM = $tg_exe_man->CreateProcess ("$DANCE_ROOT/bin/dance_execution_manager",
+ "-e$ior_emfile --node-map $dat_file");
+$EM->Spawn ();
+
+if ($tg_exe_man->WaitForFileTimed ($ior_embase,
+ $tg_exe_man->ProcessStartWaitInterval ()) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+# Invoke executor - start the application -.
+print "Invoking executor - launch the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Plan_A.cdp -k file://$ior_emfile -l");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Plan_B.cdp -k file://$ior_emfile -l");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://$ior_emfile -l\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Plan_C.cdp -k file://$ior_emfile -l");
+$E->SpawnWaitKill (2*$tg_executor->ProcessStartWaitInterval ());
+
+for ($i = 0; $i < $nr_daemon; ++$i) {
+ if ($tg_daemons[$i]->WaitForFileTimed ($iorbases[$i],
+ $tg_daemons[$i]->ProcessStopWaitInterval ()) == -1) {
+ print STDERR "ERROR: The ior file of daemon $i could not be found\n";
+ kill_open_processes ();
+ exit 1;
+ }
+}
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x Plan_A.cdp -s");
+$E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ());
+
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x Plan_B.cdp -s");
+$E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ());
+
+print "by running dance_plan_launcher.exe with -k file://$ior_emfile -x $cdp_file -s\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x Plan_C.cdp -s");
+$E->SpawnWaitKill ($tg_executor->ProcessStopWaitInterval ());
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/Config_Handlers.mpc b/modules/CIAO/DAnCE/tests/Config_Handlers/Config_Handlers.mpc
new file mode 100644
index 00000000000..487183e9ff3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/Config_Handlers.mpc
@@ -0,0 +1,14 @@
+//$Id$
+
+project (XSC_Config_Handlers_Tests) : dance_deployment_stub, dance_config_handlers, ifr_client {
+ requires += dummy_label
+ includes += $(DANCE_ROOT)/Config_Handlers
+ exename = test
+ macros += XML_USE_PTHREADS
+
+ Source_Files {
+ test.cpp
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/dynany_test.idl b/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/dynany_test.idl
new file mode 100644
index 00000000000..0ffecc5c757
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/dynany_test.idl
@@ -0,0 +1,28 @@
+//$Id$
+module dynany_test
+{
+ typedef sequence<double> DoubleSequence;
+ typedef sequence<long> LongSequence;
+ typedef sequence<string, 3> StringSequence;
+
+ enum COLOR
+ {
+ yellow,
+ blue,
+ black,
+ grey,
+ red
+ };
+
+ typedef sequence<COLOR> ColorSequence;
+
+ struct Foo
+ {
+ double db;
+ LongSequence long_sequence;
+ StringSequence string_sequence;
+ ColorSequence color_sequence;
+ };
+
+ typedef sequence<Foo> FooSequence;
+};
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.cpp b/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.cpp
new file mode 100644
index 00000000000..81e0a663836
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.cpp
@@ -0,0 +1,292 @@
+// $Id$
+
+#include <iostream>
+
+#include "Deployment.hpp"
+#include "DP_Handler.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "ace/Get_Opt.h"
+#include "XML_Typedefs.h"
+#include "tao/ORB.h"
+#include "Common.h"
+#include "dynany_testC.h"
+#include "XML_File_Intf.h"
+
+static const char *input_file = "BasicSP.cdp";
+
+
+static int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "i:");
+
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ input_file = get_opts.opt_arg ();
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-i <input file> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command-line
+ return 0;
+}
+
+using namespace CIAO::Config_Handlers;
+
+bool check_doubleseq (CORBA::Any &any)
+{
+ ACE_DEBUG ((LM_DEBUG, "Checking a double sequence\n"));
+
+ dynany_test::DoubleSequence *seq;
+
+ if (!(any >>= seq))
+ {
+ ACE_ERROR ((LM_ERROR, "failed to extract double sequence\n"));
+ return false;
+ }
+
+ static const CORBA::Double ref_seq[3] = {1.0, 2.0, 2.5};
+
+ if (seq->length () != 3)
+ {
+ ACE_ERROR ((LM_ERROR, "Unexpected length of double sequence\n"));
+ return false;
+ }
+
+ for (CORBA::ULong i = 0; i < seq->length (); ++i)
+ {
+ if ((*seq)[i] != ref_seq[i])
+ {
+ ACE_ERROR ((LM_ERROR, "Expected %ith element of double sequence "
+ " to be %d, got %d instead.\n", i, (*seq)[i], ref_seq[i]));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool check_longseq (dynany_test::LongSequence *seq);
+
+bool check_longseq (CORBA::Any &any)
+{
+ dynany_test::LongSequence *seq;
+
+ if (!(any >>= seq))
+ {
+ ACE_ERROR ((LM_ERROR, "failed to extract long sequence\n"));
+ return false;
+ }
+
+ return check_longseq (seq);
+}
+
+bool check_longseq (dynany_test::LongSequence *seq)
+{
+ ACE_DEBUG ((LM_DEBUG, "Checking a long sequence\n"));
+
+ static const CORBA::Long ref_seq[3] = {1, 5, 6};
+
+ if (seq->length () != 3)
+ {
+ ACE_ERROR ((LM_ERROR, "Unexpected length of long sequence\n"));
+ return false;
+ }
+
+ for (CORBA::ULong i = 0; i < seq->length (); ++i)
+ {
+ if ((*seq)[i] != ref_seq[i])
+ {
+ ACE_ERROR ((LM_ERROR, "Expected %ith element of long sequence "
+ " to be %i, got %i instead.\n", i, (*seq)[i], ref_seq[i]));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+
+bool check_stringseq (dynany_test::StringSequence *seq);
+
+bool check_stringseq (CORBA::Any &any)
+{
+ dynany_test::StringSequence *seq;
+
+ if (!(any >>= seq))
+ {
+ ACE_ERROR ((LM_ERROR, "failed to extract string sequence\n"));
+ return false;
+ }
+
+ return check_stringseq (seq);
+}
+
+bool check_stringseq (dynany_test::StringSequence *seq)
+{
+ ACE_DEBUG ((LM_DEBUG, "Checking a string sequence\n"));
+
+ static const std::string ref_seq[3] = {"StringOne",
+ "StringTwo",
+ "StringThree"};
+
+ if (seq->length () != 3)
+ {
+ ACE_ERROR ((LM_ERROR, "Unexpected length of string sequence\n"));
+ return false;
+ }
+
+ for (CORBA::ULong i = 0; i < seq->length (); ++i)
+ {
+ std::string val ((*seq)[i].in ());
+
+ if (val != ref_seq[i])
+ {
+ ACE_ERROR ((LM_ERROR, "Expected %ith element of string sequence "
+ " to be %i, got %i instead.\n", i, val.c_str (), ref_seq[i].c_str ()));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool check_colorseq (dynany_test::ColorSequence *seq);
+
+bool check_colorseq (CORBA::Any &any)
+{
+ dynany_test::ColorSequence *seq;
+
+ if (!(any >>= seq))
+ {
+ ACE_ERROR ((LM_ERROR, "failed to extract color sequence\n"));
+ return false;
+ }
+
+ return check_colorseq (seq);
+}
+
+bool check_colorseq (dynany_test::ColorSequence *seq)
+{
+ ACE_DEBUG ((LM_DEBUG, "Checking a color sequence\n"));
+
+ static const dynany_test::COLOR ref_seq[5] = {dynany_test::yellow, dynany_test::grey, dynany_test::red,
+ dynany_test::blue, dynany_test::black};
+
+ if (seq->length () != 5)
+ {
+ ACE_ERROR ((LM_ERROR, "Unexpected length of color sequence\n"));
+ return false;
+ }
+
+ for (CORBA::ULong i = 0; i < seq->length (); ++i)
+ {
+ if ((*seq)[i] != ref_seq[i])
+ {
+ ACE_ERROR ((LM_ERROR, "Expected %ith element of color sequence "
+ " to be %i, got %i instead.\n", i, (*seq)[i], ref_seq[i]));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool check_foo_struct (CORBA::Any &any)
+{
+ ACE_DEBUG ((LM_DEBUG, "Checking a foo struct\n"));
+
+ dynany_test::Foo *foo;
+
+ if (!(any >>= foo))
+ {
+ ACE_ERROR ((LM_ERROR, "failed to extract foo struct\n"));
+ return false;
+ }
+
+ // Check contents of foo struct
+ if (foo->db != 5.5)
+ {
+ ACE_ERROR ((LM_ERROR, "expected value of db field to be 5.5, for %d\n",
+ foo->db));
+ return false;
+ }
+
+ return check_colorseq (&foo->color_sequence) &&
+ check_longseq (&foo->long_sequence) &&
+ check_stringseq (&foo->string_sequence);
+}
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ // Initialize an ORB so Any will work
+ CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv);
+ ACE_UNUSED_ARG (orb);
+
+ //Create an XML_Helper for all the file work
+
+ bool success (true);
+
+ XML_File_Intf intf (input_file);
+ intf.add_search_path ("DANCE_ROOT", "/docs/schema/");
+ intf.add_search_path ("CIAO_ROOT", "/docs/schema/");
+
+ if (intf.get_plan () != 0)
+ {
+ std::cout << "Instance document import succeeded. Checking contents.\n";
+
+ //Retrieve the newly created IDL structure
+ Deployment::DeploymentPlan *idl = intf.release_plan();
+
+ for (CORBA::ULong i = 0; i < idl->infoProperty.length (); ++i)
+ {
+ std::string name (idl->infoProperty[i].name.in ());
+
+ if (name == "double_sequence")
+ success = success && check_doubleseq (idl->infoProperty[i].value);
+ if (name == "long_sequence")
+ success = success && check_longseq (idl->infoProperty[i].value);
+ if (name == "string_sequence")
+ success = success && check_stringseq (idl->infoProperty[i].value);
+ if (name == "color_sequence")
+ success = success && check_colorseq (idl->infoProperty[i].value);
+ if (name == "foo_struct")
+ success = success && check_foo_struct (idl->infoProperty[i].value);
+ }
+ delete idl;
+
+
+ }
+
+ if (success)
+ return 0;
+ else
+ {
+ ACE_ERROR((LM_ERROR, "Some test failures occurred, bailing out."));
+ return -1;
+ }
+ }
+ catch (CIAO::Config_Handlers::Config_Error &ex)
+ {
+ ACE_ERROR ((LM_ERROR, "Caught config_error: %s:%s\n",
+ ex.name_.c_str (), ex.error_.c_str ()));
+ return -1;
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.mpc b/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.mpc
new file mode 100644
index 00000000000..64b4f34251a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/DynAny_Handler/test.mpc
@@ -0,0 +1,16 @@
+// $Id$
+project (XSC_DynAny_Test) : dance_config_handlers, ifr_client, ciaoidldefaults {
+ requires += dummy_label
+ exename = test
+ macros += XML_USE_PTHREADS
+
+ IDL_Files {
+ dynany_test.idl
+ }
+
+ Source_Files {
+ test.cpp
+ }
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/Package_Handlers.mpc b/modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/Package_Handlers.mpc
new file mode 100644
index 00000000000..323338fe6f6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/Package_Handlers.mpc
@@ -0,0 +1,11 @@
+// $Id$
+
+project (Package_Config_Handlers_Tests) : dance_deployment_stub, dance_config_handlers, ifr_client {
+ exename = test
+ macros += XML_USE_PTHREADS
+ requires += dummy_label
+
+ Source_Files {
+ test.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/test.cpp b/modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/test.cpp
new file mode 100644
index 00000000000..c107fed4a77
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/Package_Handlers/test.cpp
@@ -0,0 +1,113 @@
+// $Id$
+
+#include <iostream>
+
+#include "Deployment.hpp"
+#include "PCD_Handler.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+#include "SID_Handler.h"
+#include "ace/Get_Opt.h"
+#include "Utils/XML_Helper.h"
+#include "tao/ORB.h"
+#include "Utils/Exceptions.h"
+
+static const char *input_file = "BasicSP.cdp";
+
+
+static int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "i:");
+
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ input_file = get_opts.opt_arg ();
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-i <input file> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command-line
+ return 0;
+}
+
+// Check to see if SRD was imported.
+void check_srd (const Deployment::DeploymentPlan &);
+
+using namespace CIAO::Config_Handlers;
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ // Initialize an ORB so Any will work
+ CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv);
+ ACE_UNUSED_ARG (orb);
+
+
+ if (xercesc::DOMDocument *doc = XML_HELPER->create_dom (input_file))
+ {
+
+ ::Deployment::PackageConfiguration idl_pc;
+ {
+ // //Read in the XSC type structure from the DOMDocument
+ //PackageConfiguration pc = packageConfiguration (doc);
+ //std::cerr << "XML to XSC conversion succeeded. Converting to IDL...\n";
+
+ //Convert the XSC to an IDL datatype
+ Packaging::PCD_Handler::package_config (input_file, idl_pc);
+ std::cout << "Instance document import succeeded. Dumping contents to file\n";
+ }
+
+ // Clear SID_Handler's IDREF Table
+ Packaging::SID_Handler::IDREF.unbind_refs ();
+
+ std::cerr << "Performing IDL->XSC transformation...\n";
+
+ PackageConfiguration out_pc (Packaging::PCD_Handler::package_config (idl_pc));
+
+ //Create a new DOMDocument for writing the XSC into XML
+ xercesc::DOMDocument* the_xsc (XML_HELPER->create_dom("Deployment:packageConfiguration",
+ "http://www.omg.org/Deployment"));
+
+ //Serialize the XSC into a DOMDocument
+ packageConfiguration(out_pc, the_xsc);
+
+
+ //Write it to test.xml
+ XML_HELPER->write_DOM(the_xsc, "test.xml");
+
+ //Cleanliness is next to Godliness
+ delete doc;
+ }
+
+ std::cout << "Test completed!\n";
+ }
+ catch (CIAO::Config_Handlers::Plan_Error &excep)
+ {
+ std::cerr << "Plan Error exception caught: " << excep.reason_ << std::endl;
+ }
+ catch (CIAO::Config_Handlers::Config_Error &excep)
+ {
+ std::cerr << "Config Error " << excep.name_ << ": " << excep.error_ << std::endl;
+ }
+
+
+ return 0;
+}
+
+
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/test.cdp b/modules/CIAO/DAnCE/tests/Config_Handlers/test.cdp
new file mode 100644
index 00000000000..2430859601b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/test.cdp
@@ -0,0 +1,1827 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:deploymentPlan xmlns:Deployment="http://www.omg.org/Deployment" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+
+<UUID>8E8594AF-3310-446F-95E2-4440D622D5CE</UUID>
+
+<implementation id="_2D19FD96-440B-48D4-8D68-4E9B466B2BCC">
+<name>RT1H_Combined.ComponentImplementations.Config_Op_Impl.Config_Op</name>
+<source/>
+<artifact>_304555B7-9E3A-4DC5-9535-FA774FAA5070</artifact>
+<artifact>_358C7270-F290-465E-B0E4-5FD390980B44</artifact>
+<artifact>_C4A896EE-C035-45F1-8F14-2320383B1991</artifact>
+<execParameter>
+<name>LoadAverage</name>
+<value>
+<type>
+<kind>tk_double</kind>
+</type>
+<value>
+<double>.25</double>
+</value>
+</value>
+</execParameter>
+</implementation>
+
+<implementation id="_DA5C3C13-030E-4971-A0BF-8631563EFDF3">
+<name>RT1H_Combined.ComponentImplementations.Planner_One_Impl.MonolithicImplementation</name>
+<source/>
+<artifact>_6C7AA3D5-7A09-4DEF-8D49-60A4E1DE173D</artifact>
+<artifact>_1DAD54BC-F7B5-41E3-9FFC-3E0AE255D989</artifact>
+<artifact>_66E9CA12-F886-4760-A9B3-DB1E3F27B920</artifact>
+<execParameter>
+<name>LoadAverage</name>
+<value>
+<type>
+<kind>tk_double</kind>
+</type>
+<value>
+<double>.25</double>
+</value>
+</value>
+</execParameter>
+</implementation>
+
+<implementation id="_A7DAA16F-D455-4C63-92CE-05B98DD34B15">
+<name>RT1H_Combined.ComponentImplementations.Planner_Three_Impl.MonolithicImplementation</name>
+<source/>
+<artifact>_2748D2D1-AAE5-4934-A43F-1639241C4351</artifact>
+<artifact>_556249CC-E874-4BC6-9411-1B33EB2B895B</artifact>
+<artifact>_458C6E27-87CA-4F77-8036-C9F612511B6F</artifact>
+<execParameter>
+<name>LoadAverage</name>
+<value>
+<type>
+<kind>tk_double</kind>
+</type>
+<value>
+<double>.25</double>
+</value>
+</value>
+</execParameter>
+</implementation>
+
+<implementation id="_A8181747-270E-43FF-B723-50825AA8EA74">
+<name>RT1H_Combined.ComponentImplementations.Env_Dectector_Impl.MonolithicImplementation</name>
+<source/>
+<artifact>_1A46D81D-989F-406B-9E87-A57D63ADDF43</artifact>
+<artifact>_208D7378-B123-4F15-B376-CAA58B5CB1E0</artifact>
+<artifact>_5D7CAC69-4E3B-45F9-BACD-B12D3A86AC7A</artifact>
+<execParameter>
+<name>LoadAverage</name>
+<value>
+<type>
+<kind>tk_double</kind>
+</type>
+<value>
+<double>.25</double>
+</value>
+</value>
+</execParameter>
+</implementation>
+
+<implementation id="_05FAFE3F-76B3-4C6E-A86B-0225B9E76909">
+<name>RT1H_Combined.ComponentImplementations.Effector_Main_Impl.MonolithicImplementation</name>
+<source/>
+<artifact>_D40E03AB-CE43-49D6-A7FF-C1231FE98898</artifact>
+<artifact>_840618C0-5513-4389-97A4-C53EB87B29A0</artifact>
+<artifact>_E1AF706E-0B37-480B-8B26-E844FE2E9C3E</artifact>
+<execParameter>
+<name>LoadAverage</name>
+<value>
+<type>
+<kind>tk_double</kind>
+</type>
+<value>
+<double>.25</double>
+</value>
+</value>
+</execParameter>
+</implementation>
+
+<implementation id="_8D45FC0E-C3DD-4671-926D-A08430B37D37">
+<name>RT1H_Combined.ComponentImplementations.Effector_Secondary_Impl.MonolithicImplementation</name>
+<source/>
+<artifact>__31B2C21F-86C7-4306-AA10-33687687B5D0</artifact>
+<artifact>__C7A0B01C-6C13-4EAA-8527-155035BF1A00</artifact>
+<artifact>__2F43BA6B-2749-4744-B9C4-18F4AEAC16C9</artifact>
+<execParameter>
+<name>LoadAverage</name>
+<value>
+<type>
+<kind>tk_double</kind>
+</type>
+<value>
+<double>.25</double>
+</value>
+</value>
+</execParameter>
+</implementation>
+
+<implementation id="_2DF6D3BE-F1A2-43E1-BEA0-54576784FF96">
+<name>RT1H_Combined.CUTS_ComponentImplementations.BDC_Implementation.BDC_Monolithic_Impl</name>
+<source/>
+<artifact>__55C2DCD4-30B1-46A3-86B2-229896D74D0D</artifact>
+<artifact>__BF5CDECF-AF12-4876-9B6C-211B7BF0B22F</artifact>
+<artifact>_0E615519-6CC8-4EA5-B67A-65FF73586F04</artifact>
+</implementation>
+
+<implementation id="_BA0C4535-191E-4BE0-9BF4-A054EB2C4139">
+<name>RT1H_Combined.CUTS_ComponentImplementations.BDC_Ex_Implementation.BDC_Ex_Impl</name>
+<source/>
+<artifact>_2DBFA82B-1D1F-48C6-9BDC-014E789E6A77</artifact>
+<artifact>_5CE1793F-38DD-427D-A21E-E6D870E769E4</artifact>
+<artifact>_0B8A6C29-8962-4DA6-99F4-25FEECD77E97</artifact>
+</implementation>
+
+<implementation id="_D98AF36F-11FA-43A4-8FAD-C14A461437FF">
+<name>RT1H_Combined.RACE_ComponentImplementations.ControllerImplementation.ControllerMonolithicImpl</name>
+<source/>
+<artifact>__032AE7B6-3ABD-478A-B0D7-56BC4AAEF0B7</artifact>
+<artifact>__00B105AB-50F5-49B7-A822-9B267F2D8896</artifact>
+<artifact>__BF4AE6A2-BE32-4B8E-9919-C812EC18BF00</artifact>
+</implementation>
+
+<implementation id="_CA363CD1-4E23-4A4B-B25B-C38B939E2B25">
+<name>RT1H_Combined.RACE_ComponentImplementations.TargetManagerImplImplementation.TargetManagerImplMonolithicImpl</name>
+<source/>
+<artifact>__C22D0B06-6CDA-4652-B1CE-586E0C23251F</artifact>
+<artifact>__9CB3A43B-397F-4FA9-97AA-EBFC3A22BFEC</artifact>
+<artifact>__0F176DA2-9953-482A-9268-7DA5E69A88FE</artifact>
+</implementation>
+
+<implementation id="_7A233158-69BB-4382-BDE0-72432BF3D48E">
+<name>RT1H_Combined.RA_ComponentImplementations.AnalyzerImplementation.AnalyzerMonolithicImpl</name>
+<source/>
+<artifact>__315FC65C-0582-4E0E-BB8B-C23A1238C67F</artifact>
+<artifact>__7AD332BC-90DC-4E7D-B026-8D5053F2552E</artifact>
+<artifact>__84974D39-AE18-4C0A-B81A-B1EC349E93BB</artifact>
+</implementation>
+
+<implementation id="_14E77757-BC3A-49F4-8D45-FB447FA7F626">
+<name>RT1H_Combined.RA_ComponentImplementations.SimpleAllocationAnalyzerImplementation.SimpleAllocationAnalyzerMonolithicImpl</name>
+<source/>
+<artifact>__6BDE830C-FFA8-4F2D-9733-34F02F35020F</artifact>
+<artifact>__138A0FE1-D8AA-4C1E-BB5E-4EC9714F4CA8</artifact>
+<artifact>__621F3412-C507-4945-836B-CF9B81BDCC99</artifact>
+</implementation>
+
+<implementation id="_E4DC8736-E532-44DC-9C9B-789EBA3D6B27">
+<name>RT1H_Combined.RA_ComponentImplementations.Input_AdapterImplementation.Input_AdapterMonolithicImpl</name>
+<source/>
+<artifact>__DC22BCBB-DB20-4072-AA64-161AFD7A9C10</artifact>
+<artifact>__3E362049-0CF5-4F01-905F-67CAD769FFD5</artifact>
+<artifact>__3B466B60-F8C2-4E48-A6E4-3D3D7EED9F03</artifact>
+</implementation>
+
+<implementation id="_73898E70-9FB1-4881-9313-A2DE181EE48E">
+<name>RT1H_Combined.RA_ComponentImplementations.Interactive_Input_AdapterImplementation.Interactive_Input_AdapterMonolithicImpl</name>
+<source/>
+<artifact>__AD4B52E0-103C-49E2-BE47-29CAE978676F</artifact>
+<artifact>__E4AF24BF-5A39-46B1-8217-6343D7D53298</artifact>
+<artifact>__76A0CEFE-E2F7-4BF7-BB91-F309FB5AD33C</artifact>
+</implementation>
+
+<implementation id="_796D9731-1CD9-4855-83F2-025AECB90C93">
+<name>RT1H_Combined.RA_ComponentImplementations.Output_AdapterImplementation.Output_AdapterMonolithicImpl</name>
+<source/>
+<artifact>__864DB99C-C60B-4FDD-A47D-AFD5C1599892</artifact>
+<artifact>__D6EB8E01-F794-4C43-AB14-A3AFB9767D01</artifact>
+<artifact>__4C78C4F9-FEF4-45AA-84A4-FFB10255A1EC</artifact>
+</implementation>
+
+<implementation id="_A22015F9-9BC9-4767-A861-FAFF737E074B">
+<name>RT1H_Combined.RA_ComponentImplementations.Output_ManagerImplementation.Output_ManagerMonolithicImpl</name>
+<source/>
+<artifact>__AB498B7F-A0E8-4F59-BF24-BBB9D125EED3</artifact>
+<artifact>__1BB4CD4A-38A8-4BBA-9303-4A10F5B8BC57</artifact>
+<artifact>__280E6118-F4C7-4DE4-A0A4-A50637282EAE</artifact>
+</implementation>
+
+<implementation id="_219DB379-DB2E-44D2-8308-D91FC5A42A9D">
+<name>RT1H_Combined.RA_ComponentImplementations.DAnCE_Output_AdapterImplementation.DAnCE_Output_AdapterMonolithicImpl</name>
+<source/>
+<artifact>__A47095F9-2E08-485E-96B4-CC0829051DF3</artifact>
+<artifact>__E54AE941-14CA-48FC-BAAA-1B93269EF79B</artifact>
+<artifact>__ACA6BD67-D92A-4DBF-827A-7C0B15EA3F6D</artifact>
+</implementation>
+
+<implementation id="_5A98D073-1392-4C85-AB88-1AD6E61BF34D">
+<name>RT1H_Combined.RA_ComponentImplementations.XML_Output_AdapterImplementation.XML_Output_AdapterMonolithicImpl</name>
+<source/>
+<artifact>__CF7C6C9B-C6E3-4356-B9F1-598FA0B4A5B7</artifact>
+<artifact>__437B6234-9DD3-40E4-9AE0-0923EBAF4548</artifact>
+<artifact>__E2F1EA75-127C-4579-B692-ADD1026C6F23</artifact>
+</implementation>
+
+<implementation id="_571F6ECC-579F-4F69-88AB-EA1603B422E8">
+<name>RT1H_Combined.RA_ComponentImplementations.PlannerImplementation.PlannerMonolithicImpl</name>
+<source/>
+<artifact>__B28C1F32-0231-4F7F-8FE2-164321942B87</artifact>
+<artifact>__2021EE2F-3480-4BF9-9A3A-D146A99D251D</artifact>
+<artifact>__D952F988-841F-43BA-9650-86846B08DF5F</artifact>
+</implementation>
+
+<implementation id="_38C5B64C-72FD-48FF-B095-260669E2A488">
+<name>RT1H_Combined.RA_ComponentImplementations.SimpleBinPackerImplementation.SimpleBinPackerMonolithicImpl</name>
+<source/>
+<artifact>__2B5FE9E6-AF4C-4BC1-92A2-58101B2ECCA8</artifact>
+<artifact>__4D375D8F-5470-4236-8614-EF07D08020E3</artifact>
+<artifact>__D6176B6C-58E4-43D4-BFC9-3DCF98249044</artifact>
+</implementation>
+
+<implementation id="_FD120510-765E-4B02-803D-7DADF3F5E4E6">
+<name>RT1H_Combined.RA_ComponentImplementations.Planner_ManagerImplementation.Planner_ManagerMonolithicImpl</name>
+<source/>
+<artifact>__5B614077-C99E-428C-B8BE-252ADD7905B7</artifact>
+<artifact>__0BEB188E-3967-4D91-A6A1-CDF08EF81718</artifact>
+<artifact>__A65A1FA0-8F4D-4807-9AE9-90D344154D2C</artifact>
+</implementation>
+
+<implementation id="_5D6641D2-640C-4F80-B055-10DC69C7A636">
+<name>RT1H_Combined.RA_ComponentImplementations.Plan_AnalyzerImplementation.Plan_AnalyzerMonolithicImpl</name>
+<source/>
+<artifact>__1CC443DF-7EE3-4130-8ACE-EE4181AC96CD</artifact>
+<artifact>__57123764-8624-4D79-9C5B-7ADF929536E6</artifact>
+<artifact>__CDC7061A-483C-447B-8151-E68250566E86</artifact>
+</implementation>
+
+<instance id="_3FD684C5-47B0-4E8C-88D0-8AD9CEB11FEB">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.EnvDetector1</name>
+<node>blade44</node>
+<source/>
+<implementation>_A8181747-270E-43FF-B723-50825AA8EA74</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Env_Detector.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_AC6DB008-DCCB-45D7-B52D-628B74B49AC9">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.EnvDetector2</name>
+<node>blade44</node>
+<source/>
+<implementation>_A8181747-270E-43FF-B723-50825AA8EA74</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Env_Detector.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_7529501D-B22A-42F9-A75B-0E71DC97D3AA">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.EnvDetecto3</name>
+<node>blade44</node>
+<source/>
+<implementation>_A8181747-270E-43FF-B723-50825AA8EA74</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Env_Detector.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_FEBD6AD3-6310-4E25-A0E5-957DED0B6509">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.EnvDetector4</name>
+<node>blade44</node>
+<source/>
+<implementation>_A8181747-270E-43FF-B723-50825AA8EA74</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Env_Detector.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_2F3B1B72-DB17-47E7-BA21-1ABEF84032EC">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Effector3</name>
+<node>blade43</node>
+<source/>
+<implementation>_8D45FC0E-C3DD-4671-926D-A08430B37D37</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Effectory_Secondary.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_EC0045E5-7501-4E2B-B755-D8CE22BF4816">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Effector2</name>
+<node>blade43</node>
+<source/>
+<implementation>_8D45FC0E-C3DD-4671-926D-A08430B37D37</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Effectory_Secondary.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_57B08287-3528-4862-9110-ACACD713360B">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Effector4</name>
+<node>blade43</node>
+<source/>
+<implementation>_8D45FC0E-C3DD-4671-926D-A08430B37D37</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Effectory_Secondary.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_AB189D2B-6D86-4020-88BD-74DBECC7F7B8">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Planner_Three</name>
+<node>blade39</node>
+<source/>
+<implementation>_A7DAA16F-D455-4C63-92CE-05B98DD34B15</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Planner_Three.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_002D7B3A-A628-43E3-AD53-B1AB8636001E">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Planner_One</name>
+<node>blade42</node>
+<source/>
+<implementation>_DA5C3C13-030E-4971-A0BF-8631563EFDF3</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Planner_One.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_015ACD88-117F-42C9-8D04-3FFAB9F6C98E">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Effector_Main</name>
+<node>blade41</node>
+<source/>
+<implementation>_05FAFE3F-76B3-4C6E-A86B-0225B9E76909</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Effectory_Main.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_34C61830-1F54-494F-95DE-4003BCD428C5">
+<name>RT1H_Combined.ComponentImplementations.RT1H.RT1H.Config_Op</name>
+<node>blade40</node>
+<source/>
+<implementation>_2D19FD96-440B-48D4-8D68-4E9B466B2BCC</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>Config_Op.ior</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<instance id="_7AE0BE73-48F8-4717-A5FF-524D454C58DD">
+<name>RT1H_Combined.ComponentImplementations.RACE.RACE.Benchmark_Data_Collector_Ex</name>
+<node>blade10</node>
+<source/>
+<implementation>_BA0C4535-191E-4BE0-9BF4-A054EB2C4139</implementation>
+<configProperty>
+<name>ComponentIOR</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>BDC_Ex.ior</string>
+</value>
+</value>
+</configProperty>
+<configProperty>
+<name>server_name</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>blade10.isislab.vanderbilt.edu</string>
+</value>
+</value>
+</configProperty>
+</instance>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_002D7B3A-A628-43E3-AD53-B1AB8636001E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_34C61830-1F54-494F-95DE-4003BCD428C5</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_57B08287-3528-4862-9110-ACACD713360B</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_2F3B1B72-DB17-47E7-BA21-1ABEF84032EC</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_EC0045E5-7501-4E2B-B755-D8CE22BF4816</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_FEBD6AD3-6310-4E25-A0E5-957DED0B6509</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_7529501D-B22A-42F9-A75B-0E71DC97D3AA</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_AC6DB008-DCCB-45D7-B52D-628B74B49AC9</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>cuts_testing_service_testing_service</name>
+<internalEndpoint>
+<portName>cuts_testing_service</portName>
+<kind>SimplexReceptacle</kind>
+<instance>_3FD684C5-47B0-4E8C-88D0-8AD9CEB11FEB</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>testing_service</portName>
+<kind>Facet</kind>
+<instance>_7AE0BE73-48F8-4717-A5FF-524D454C58DD</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>status_status</name>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventPublisher</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventConsumer</kind>
+<instance>_34C61830-1F54-494F-95DE-4003BCD428C5</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>status_status</name>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventPublisher</kind>
+<instance>_EC0045E5-7501-4E2B-B755-D8CE22BF4816</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventConsumer</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>status_status</name>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventPublisher</kind>
+<instance>_57B08287-3528-4862-9110-ACACD713360B</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventConsumer</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>status_status</name>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventPublisher</kind>
+<instance>_2F3B1B72-DB17-47E7-BA21-1ABEF84032EC</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>status</portName>
+<kind>EventConsumer</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_34C61830-1F54-494F-95DE-4003BCD428C5</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_57B08287-3528-4862-9110-ACACD713360B</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_EC0045E5-7501-4E2B-B755-D8CE22BF4816</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_015ACD88-117F-42C9-8D04-3FFAB9F6C98E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_2F3B1B72-DB17-47E7-BA21-1ABEF84032EC</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>assessment_assessment</name>
+<internalEndpoint>
+<portName>assessment</portName>
+<kind>EventPublisher</kind>
+<instance>_002D7B3A-A628-43E3-AD53-B1AB8636001E</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>assessment</portName>
+<kind>EventConsumer</kind>
+<instance>_34C61830-1F54-494F-95DE-4003BCD428C5</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>situation_situation</name>
+<internalEndpoint>
+<portName>situation</portName>
+<kind>EventPublisher</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>situation</portName>
+<kind>EventConsumer</kind>
+<instance>_002D7B3A-A628-43E3-AD53-B1AB8636001E</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_FEBD6AD3-6310-4E25-A0E5-957DED0B6509</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_3FD684C5-47B0-4E8C-88D0-8AD9CEB11FEB</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_7529501D-B22A-42F9-A75B-0E71DC97D3AA</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>command_command</name>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventPublisher</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>command</portName>
+<kind>EventConsumer</kind>
+<instance>_AC6DB008-DCCB-45D7-B52D-628B74B49AC9</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>track_track</name>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventPublisher</kind>
+<instance>_FEBD6AD3-6310-4E25-A0E5-957DED0B6509</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventConsumer</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>track_track</name>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventPublisher</kind>
+<instance>_7529501D-B22A-42F9-A75B-0E71DC97D3AA</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventConsumer</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>track_track</name>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventPublisher</kind>
+<instance>_AC6DB008-DCCB-45D7-B52D-628B74B49AC9</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventConsumer</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+</connection>
+
+<connection>
+<name>track_track</name>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventPublisher</kind>
+<instance>_3FD684C5-47B0-4E8C-88D0-8AD9CEB11FEB</instance>
+</internalEndpoint>
+<internalEndpoint>
+<portName>track</portName>
+<kind>EventConsumer</kind>
+<instance>_AB189D2B-6D86-4020-88BD-74DBECC7F7B8</instance>
+</internalEndpoint>
+</connection>
+
+<artifact id="_358C7270-F290-465E-B0E4-5FD390980B44">
+<name>RT1H_Combined.ImplementationArtifacts.Config_Op_Artifacts.Config_Op_stub</name>
+<source/>
+<node/>
+<location>Config_Op_CoWorkEr_stub</location>
+</artifact>
+
+<artifact id="_304555B7-9E3A-4DC5-9535-FA774FAA5070">
+<name>RT1H_Combined.ImplementationArtifacts.Config_Op_Artifacts.Config_Op_svnt</name>
+<source/>
+<node/>
+<location>Config_Op_CoWorkEr_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Config_Op_Factory_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_C4A896EE-C035-45F1-8F14-2320383B1991">
+<name>RT1H_Combined.ImplementationArtifacts.Config_Op_Artifacts.Config_Op_exec</name>
+<source/>
+<node/>
+<location>Config_Op_CoWorkEr_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Config_Op_Factory_CoWorkEr_Factory_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_208D7378-B123-4F15-B376-CAA58B5CB1E0">
+<name>RT1H_Combined.ImplementationArtifacts.Env_Dectector_Artifacts.Env_Detector_exec</name>
+<source/>
+<node/>
+<location>Env_Detector_CoWorkEr_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Env_Detector_Factory_CoWorkEr_Factory_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_5D7CAC69-4E3B-45F9-BACD-B12D3A86AC7A">
+<name>RT1H_Combined.ImplementationArtifacts.Env_Dectector_Artifacts.Env_Dectector_stub</name>
+<source/>
+<node/>
+<location>Env_Detector_CoWorkEr_stub</location>
+</artifact>
+
+<artifact id="_1A46D81D-989F-406B-9E87-A57D63ADDF43">
+<name>RT1H_Combined.ImplementationArtifacts.Env_Dectector_Artifacts.Env_Detector_svnt</name>
+<source/>
+<node/>
+<location>Env_Detector_CoWorkEr_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Env_Detector_Factory_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_1DAD54BC-F7B5-41E3-9FFC-3E0AE255D989">
+<name>RT1H_Combined.ImplementationArtifacts.Planner_One_Artifacts.Planner_One_stub</name>
+<source/>
+<node/>
+<location>Planner_One_CoWorkEr_stub</location>
+</artifact>
+
+<artifact id="_6C7AA3D5-7A09-4DEF-8D49-60A4E1DE173D">
+<name>RT1H_Combined.ImplementationArtifacts.Planner_One_Artifacts.Planner_One_svnt</name>
+<source/>
+<node/>
+<location>Planner_One_CoWorkEr_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Planner_One_Factory_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_66E9CA12-F886-4760-A9B3-DB1E3F27B920">
+<name>RT1H_Combined.ImplementationArtifacts.Planner_One_Artifacts.Planner_One_exec</name>
+<source/>
+<node/>
+<location>Planner_One_CoWorkEr_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Planner_One_Factory_CoWorkEr_Factory_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__C7A0B01C-6C13-4EAA-8527-155035BF1A00">
+<name>RT1H_Combined.ImplementationArtifacts.Effector_Secondary_Artifacts.Effector_Secondary_svnt</name>
+<source/>
+<node/>
+<location>Effector_Secondary_CoWorkEr_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Effector_Secondary_Factory_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__31B2C21F-86C7-4306-AA10-33687687B5D0">
+<name>RT1H_Combined.ImplementationArtifacts.Effector_Secondary_Artifacts.Effector_Secondary_stub</name>
+<source/>
+<node/>
+<location>Effector_Secondary_CoWorkEr_stub</location>
+</artifact>
+
+<artifact id="__2F43BA6B-2749-4744-B9C4-18F4AEAC16C9">
+<name>RT1H_Combined.ImplementationArtifacts.Effector_Secondary_Artifacts.Effector_Secondary_exec</name>
+<source/>
+<node/>
+<location>Effector_Secondary_CoWorkEr_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Effector_Secondary_Factory_CoWorkEr_Factory_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_840618C0-5513-4389-97A4-C53EB87B29A0">
+<name>RT1H_Combined.ImplementationArtifacts.Effector_Main_Artifacts.Effector_Main_svnt</name>
+<source/>
+<node/>
+<location>Effector_Main_CoWorkEr_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Effector_Main_Factory_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_E1AF706E-0B37-480B-8B26-E844FE2E9C3E">
+<name>RT1H_Combined.ImplementationArtifacts.Effector_Main_Artifacts.Effector_Main_exec</name>
+<source/>
+<node/>
+<location>Effector_Main_CoWorkEr_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Effector_Main_Factory_CoWorkEr_Factory_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_D40E03AB-CE43-49D6-A7FF-C1231FE98898">
+<name>RT1H_Combined.ImplementationArtifacts.Effector_Main_Artifacts.Effector_Main_stub</name>
+<source/>
+<node/>
+<location>Effector_Main_CoWorkEr_stub</location>
+</artifact>
+
+<artifact id="_556249CC-E874-4BC6-9411-1B33EB2B895B">
+<name>RT1H_Combined.ImplementationArtifacts.Planner_Three_Artifacts.Planner_Three_svnt</name>
+<source/>
+<node/>
+<location>Planner_Three_CoWorkEr_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Planner_Three_Factory_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_458C6E27-87CA-4F77-8036-C9F612511B6F">
+<name>RT1H_Combined.ImplementationArtifacts.Planner_Three_Artifacts.Planner_Three_exec</name>
+<source/>
+<node/>
+<location>Planner_Three_CoWorkEr_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_TSCE_Planner_Three_Factory_CoWorkEr_Factory_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_2748D2D1-AAE5-4934-A43F-1639241C4351">
+<name>RT1H_Combined.ImplementationArtifacts.Planner_Three_Artifacts.Planner_Three_stub</name>
+<source/>
+<node/>
+<location>Planner_Three_CoWorkEr_stub</location>
+</artifact>
+
+<artifact id="__55C2DCD4-30B1-46A3-86B2-229896D74D0D">
+<name>RT1H_Combined.CUTS_ImplementationArtifacts.BDC_Artifacts.BDC_stub</name>
+<source/>
+<node/>
+<location>Benchmark_Data_Collector_stub</location>
+</artifact>
+
+<artifact id="__BF5CDECF-AF12-4876-9B6C-211B7BF0B22F">
+<name>RT1H_Combined.CUTS_ImplementationArtifacts.BDC_Artifacts.BDC_svnt</name>
+<source/>
+<node/>
+<location>Benchmark_Data_Collector_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CUTS_Benchmark_Data_Collector_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_0E615519-6CC8-4EA5-B67A-65FF73586F04">
+<name>RT1H_Combined.CUTS_ImplementationArtifacts.BDC_Artifacts.BDC_exec</name>
+<source/>
+<node/>
+<location>Benchmark_Data_Collector_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CUTS_Benchmark_Data_Collector_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_0B8A6C29-8962-4DA6-99F4-25FEECD77E97">
+<name>RT1H_Combined.CUTS_ImplementationArtifacts.BDC_Ex_Artifacts.BDC_Ex_exec</name>
+<source/>
+<node/>
+<location>Benchmark_Data_Collector_Ex_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CUTS_Benchmark_Data_Collector_Ex_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="_5CE1793F-38DD-427D-A21E-E6D870E769E4">
+<name>RT1H_Combined.CUTS_ImplementationArtifacts.BDC_Ex_Artifacts.BDC_Ex_stub</name>
+<source/>
+<node/>
+<location>Benchmark_Data_Collector_Ex_stub</location>
+</artifact>
+
+<artifact id="_2DBFA82B-1D1F-48C6-9BDC-014E789E6A77">
+<name>RT1H_Combined.CUTS_ImplementationArtifacts.BDC_Ex_Artifacts.BDC_Ex_svnt</name>
+<source/>
+<node/>
+<location>Benchmark_Data_Collector_Ex_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CUTS_Benchmark_Data_Collector_Ex_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__032AE7B6-3ABD-478A-B0D7-56BC4AAEF0B7">
+<name>RT1H_Combined.RACE_ImplementationArtifacts.ControllerArtifacts.Controller_stub</name>
+<source/>
+<node/>
+<location>Controller_stub</location>
+</artifact>
+
+<artifact id="__00B105AB-50F5-49B7-A822-9B267F2D8896">
+<name>RT1H_Combined.RACE_ImplementationArtifacts.ControllerArtifacts.Controller_svnt</name>
+<source/>
+<node/>
+<location>Controller_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Controller_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__BF4AE6A2-BE32-4B8E-9919-C812EC18BF00">
+<name>RT1H_Combined.RACE_ImplementationArtifacts.ControllerArtifacts.Controller_exec</name>
+<source/>
+<node/>
+<location>Controller_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Controller_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__C22D0B06-6CDA-4652-B1CE-586E0C23251F">
+<name>RT1H_Combined.RACE_ImplementationArtifacts.TargetManagerImplArtifacts.TargetManager_stub</name>
+<source/>
+<node/>
+<location>TargetManager_stub</location>
+</artifact>
+
+<artifact id="__9CB3A43B-397F-4FA9-97AA-EBFC3A22BFEC">
+<name>RT1H_Combined.RACE_ImplementationArtifacts.TargetManagerImplArtifacts.TargetManager_svnt</name>
+<source/>
+<node/>
+<location>TargetManager_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_TargetManagerHome_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__0F176DA2-9953-482A-9268-7DA5E69A88FE">
+<name>RT1H_Combined.RACE_ImplementationArtifacts.TargetManagerImplArtifacts.TargetManager_exec</name>
+<source/>
+<node/>
+<location>TargetManager_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_TargetManagerHome_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__315FC65C-0582-4E0E-BB8B-C23A1238C67F">
+<name>RT1H_Combined.RA_ImplementationArtifacts.AnalyzerArtifacts.Analyzer_stub</name>
+<source/>
+<node/>
+<location>Analyzer_stub</location>
+</artifact>
+
+<artifact id="__7AD332BC-90DC-4E7D-B026-8D5053F2552E">
+<name>RT1H_Combined.RA_ImplementationArtifacts.AnalyzerArtifacts.Analyzer_svnt</name>
+<source/>
+<node/>
+<location>Analyzer_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Analyzer_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__84974D39-AE18-4C0A-B81A-B1EC349E93BB">
+<name>RT1H_Combined.RA_ImplementationArtifacts.AnalyzerArtifacts.Analyzer_exec</name>
+<source/>
+<node/>
+<location>Analyzer_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Analyzer_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__6BDE830C-FFA8-4F2D-9733-34F02F35020F">
+<name>RT1H_Combined.RA_ImplementationArtifacts.SimpleAllocationAnalyzerArtifacts.SimpleAllocationAnalyzer_stub</name>
+<source/>
+<node/>
+<location>SimpleAllocationAnalyzer_stub</location>
+</artifact>
+
+<artifact id="__138A0FE1-D8AA-4C1E-BB5E-4EC9714F4CA8">
+<name>RT1H_Combined.RA_ImplementationArtifacts.SimpleAllocationAnalyzerArtifacts.SimpleAllocationAnalyzer_svnt</name>
+<source/>
+<node/>
+<location>SimpleAllocationAnalyzer_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_SimpleAllocationAnalyzer_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__621F3412-C507-4945-836B-CF9B81BDCC99">
+<name>RT1H_Combined.RA_ImplementationArtifacts.SimpleAllocationAnalyzerArtifacts.SimpleAllocationAnalyzer_exec</name>
+<source/>
+<node/>
+<location>SimpleAllocationAnalyzer_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_SimpleAllocationAnalyzer_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__DC22BCBB-DB20-4072-AA64-161AFD7A9C10">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Input_AdapterArtifacts.Input_Adapter_stub</name>
+<source/>
+<node/>
+<location>Input_Adapter_stub</location>
+</artifact>
+
+<artifact id="__3E362049-0CF5-4F01-905F-67CAD769FFD5">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Input_AdapterArtifacts.Input_Adapter_svnt</name>
+<source/>
+<node/>
+<location>Input_Adapter_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Input_Adapter_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__3B466B60-F8C2-4E48-A6E4-3D3D7EED9F03">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Input_AdapterArtifacts.Input_Adapter_exec</name>
+<source/>
+<node/>
+<location>Input_Adapter_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Input_Adapter_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__AD4B52E0-103C-49E2-BE47-29CAE978676F">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Interactive_Input_AdapterArtifacts.Interactive_Input_Adapter_stub</name>
+<source/>
+<node/>
+<location>Interactive_Input_Adapter_stub</location>
+</artifact>
+
+<artifact id="__E4AF24BF-5A39-46B1-8217-6343D7D53298">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Interactive_Input_AdapterArtifacts.Interactive_Input_Adapter_svnt</name>
+<source/>
+<node/>
+<location>Interactive_Input_Adapter_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Interactive_Input_Adapter_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__76A0CEFE-E2F7-4BF7-BB91-F309FB5AD33C">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Interactive_Input_AdapterArtifacts.Interactive_Input_Adapter_exec</name>
+<source/>
+<node/>
+<location>Interactive_Input_Adapter_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Interactive_Input_Adapter_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__864DB99C-C60B-4FDD-A47D-AFD5C1599892">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Output_AdapterArtifacts.Output_Adapter_stub</name>
+<source/>
+<node/>
+<location>Output_Adapter_stub</location>
+</artifact>
+
+<artifact id="__D6EB8E01-F794-4C43-AB14-A3AFB9767D01">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Output_AdapterArtifacts.Output_Adapter_svnt</name>
+<source/>
+<node/>
+<location>Output_Adapter_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Output_Adapter_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__4C78C4F9-FEF4-45AA-84A4-FFB10255A1EC">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Output_AdapterArtifacts.Output_Adapter_exec</name>
+<source/>
+<node/>
+<location>Output_Adapter_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Output_Adapter_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__AB498B7F-A0E8-4F59-BF24-BBB9D125EED3">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Output_ManagerArtifacts.Output_Manager_stub</name>
+<source/>
+<node/>
+<location>Output_Manager_stub</location>
+</artifact>
+
+<artifact id="__1BB4CD4A-38A8-4BBA-9303-4A10F5B8BC57">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Output_ManagerArtifacts.Output_Manager_svnt</name>
+<source/>
+<node/>
+<location>Output_Manager_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Output_Manager_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__280E6118-F4C7-4DE4-A0A4-A50637282EAE">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Output_ManagerArtifacts.Output_Manager_exec</name>
+<source/>
+<node/>
+<location>Output_Manager_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Output_Manager_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__A47095F9-2E08-485E-96B4-CC0829051DF3">
+<name>RT1H_Combined.RA_ImplementationArtifacts.DAnCE_Output_AdapterArtifacts.DAnCE_Output_Adapter_stub</name>
+<source/>
+<node/>
+<location>DAnCE_Output_Adapter_stub</location>
+</artifact>
+
+<artifact id="__E54AE941-14CA-48FC-BAAA-1B93269EF79B">
+<name>RT1H_Combined.RA_ImplementationArtifacts.DAnCE_Output_AdapterArtifacts.DAnCE_Output_Adapter_svnt</name>
+<source/>
+<node/>
+<location>DAnCE_Output_Adapter_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_DAnCE_Output_Adapter_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__ACA6BD67-D92A-4DBF-827A-7C0B15EA3F6D">
+<name>RT1H_Combined.RA_ImplementationArtifacts.DAnCE_Output_AdapterArtifacts.DAnCE_Output_Adapter_exec</name>
+<source/>
+<node/>
+<location>DAnCE_Output_Adapter_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_DAnCE_Output_Adapter_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__CF7C6C9B-C6E3-4356-B9F1-598FA0B4A5B7">
+<name>RT1H_Combined.RA_ImplementationArtifacts.XML_Output_AdapterArtifacts.XML_Output_Adapter_stub</name>
+<source/>
+<node/>
+<location>XML_Output_Adapter_stub</location>
+</artifact>
+
+<artifact id="__437B6234-9DD3-40E4-9AE0-0923EBAF4548">
+<name>RT1H_Combined.RA_ImplementationArtifacts.XML_Output_AdapterArtifacts.XML_Output_Adapter_svnt</name>
+<source/>
+<node/>
+<location>XML_Output_Adapter_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_XML_Output_Adapter_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__E2F1EA75-127C-4579-B692-ADD1026C6F23">
+<name>RT1H_Combined.RA_ImplementationArtifacts.XML_Output_AdapterArtifacts.XML_Output_Adapter_exec</name>
+<source/>
+<node/>
+<location>XML_Output_Adapter_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_XML_Output_Adapter_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__B28C1F32-0231-4F7F-8FE2-164321942B87">
+<name>RT1H_Combined.RA_ImplementationArtifacts.PlannerArtifacts.Planner_stub</name>
+<source/>
+<node/>
+<location>Planner_stub</location>
+</artifact>
+
+<artifact id="__2021EE2F-3480-4BF9-9A3A-D146A99D251D">
+<name>RT1H_Combined.RA_ImplementationArtifacts.PlannerArtifacts.Planner_svnt</name>
+<source/>
+<node/>
+<location>Planner_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Planner_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__D952F988-841F-43BA-9650-86846B08DF5F">
+<name>RT1H_Combined.RA_ImplementationArtifacts.PlannerArtifacts.Planner_exec</name>
+<source/>
+<node/>
+<location>Planner_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Planner_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__2B5FE9E6-AF4C-4BC1-92A2-58101B2ECCA8">
+<name>RT1H_Combined.RA_ImplementationArtifacts.SimpleBinPackerArtifacts.SimpleBinPacker_stub</name>
+<source/>
+<node/>
+<location>SimpleBinPacker_stub</location>
+</artifact>
+
+<artifact id="__4D375D8F-5470-4236-8614-EF07D08020E3">
+<name>RT1H_Combined.RA_ImplementationArtifacts.SimpleBinPackerArtifacts.SimpleBinPacker_svnt</name>
+<source/>
+<node/>
+<location>SimpleBinPacker_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_SimpleBinPacker_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__D6176B6C-58E4-43D4-BFC9-3DCF98249044">
+<name>RT1H_Combined.RA_ImplementationArtifacts.SimpleBinPackerArtifacts.SimpleBinPacker_exec</name>
+<source/>
+<node/>
+<location>SimpleBinPacker_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_SimpleBinPacker_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__5B614077-C99E-428C-B8BE-252ADD7905B7">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Planner_ManagerArtifacts.Planner_Manager_stub</name>
+<source/>
+<node/>
+<location>Planner_Manager_stub</location>
+</artifact>
+
+<artifact id="__0BEB188E-3967-4D91-A6A1-CDF08EF81718">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Planner_ManagerArtifacts.Planner_Manager_svnt</name>
+<source/>
+<node/>
+<location>Planner_Manager_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Planner_Manager_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__A65A1FA0-8F4D-4807-9AE9-90D344154D2C">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Planner_ManagerArtifacts.Planner_Manager_exec</name>
+<source/>
+<node/>
+<location>Planner_Manager_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Planner_Manager_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__1CC443DF-7EE3-4130-8ACE-EE4181AC96CD">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Plan_AnalyzerArtifacts.Plan_Analyzer_stub</name>
+<source/>
+<node/>
+<location>Plan_Analyzer_stub</location>
+</artifact>
+
+<artifact id="__57123764-8624-4D79-9C5B-7ADF929536E6">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Plan_AnalyzerArtifacts.Plan_Analyzer_svnt</name>
+<source/>
+<node/>
+<location>Plan_Analyzer_svnt</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Plan_Analyzer_Home_Servant</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+<artifact id="__CDC7061A-483C-447B-8151-E68250566E86">
+<name>RT1H_Combined.RA_ImplementationArtifacts.Plan_AnalyzerArtifacts.Plan_Analyzer_exec</name>
+<source/>
+<node/>
+<location>Plan_Analyzer_exec</location>
+<execParameter>
+<name>entryPoint</name>
+<value>
+<type>
+<kind>tk_string</kind>
+</type>
+<value>
+<string>create_CIAO_RACE_Plan_Analyzer_Home_Impl</string>
+</value>
+</value>
+</execParameter>
+</artifact>
+
+</Deployment:deploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/Config_Handlers/test.cpp b/modules/CIAO/DAnCE/tests/Config_Handlers/test.cpp
new file mode 100644
index 00000000000..fd50374aa7e
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/Config_Handlers/test.cpp
@@ -0,0 +1,119 @@
+// $Id$
+
+#include <iostream>
+
+#include "Deployment.hpp"
+#include "DP_Handler.h"
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "ace/Get_Opt.h"
+#include "Utils/XML_Typedefs.h"
+#include "tao/ORB.h"
+static const char *input_file = "BasicSP.cdp";
+
+
+static int
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "i:");
+
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ input_file = get_opts.opt_arg ();
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-i <input file> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command-line
+ return 0;
+}
+
+// Check to see if SRD was imported.
+void check_srd (const Deployment::DeploymentPlan &);
+
+using namespace CIAO::Config_Handlers;
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ // Initialize an ORB so Any will work
+ CORBA::ORB_ptr orb = CORBA::ORB_init (argc, argv);
+ ACE_UNUSED_ARG (orb);
+
+ //Create an XML_Helper for all the file work
+
+ if (xercesc::DOMDocument *doc =
+ XML_Helper::XML_HELPER.create_dom (input_file))
+ {
+ //Read in the XSC type structure from the DOMDocument
+ DeploymentPlan dp = deploymentPlan (doc);
+
+ //Convert the XSC to an IDL datatype
+
+ DP_Handler dp_handler (dp);
+
+ std::cout << "Instance document import succeeded. Dumping contents to file\n";
+
+ //Retrieve the newly created IDL structure
+ Deployment::DeploymentPlan *idl = dp_handler.plan();
+
+ // Check for server resources, if present....
+ check_srd (*idl);
+
+ //Convert it back to an XSC structure with a new DP_Handler
+ DP_Handler reverse_handler(*idl);
+
+ //Create a new DOMDocument for writing the XSC into XML
+ xercesc::DOMDocument* the_xsc
+ (XML_Helper::XML_HELPER.create_dom(0));
+
+ //Serialize the XSC into a DOMDocument
+ deploymentPlan(*reverse_handler.xsc(), the_xsc);
+
+
+ //Write it to test.xml
+ XML_Helper::XML_HELPER.write_DOM(the_xsc, "test.xml");
+
+ //Cleanliness is next to Godliness
+ delete doc;
+ }
+
+ std::cout << "Test completed!\n";
+
+ return 0;
+}
+
+
+void check_srd (const Deployment::DeploymentPlan &dp)
+{
+ for (CORBA::ULong i = 0;
+ i < dp.infoProperty.length ();
+ ++i)
+ {
+ if (ACE_OS::strcmp (dp.infoProperty[i].name.in (),
+ "CIAOServerResources") == 0)
+ {
+ CIAO::DAnCE::ServerResource *test;
+
+ if (dp.infoProperty[i].value >>= test)
+ std::cerr << "ServerResources found and successfully extracted." << std::endl;
+ else
+ std::cerr << "ERROR: ServerResource extraction failed!" << std::endl;
+ }
+ }
+
+}
+
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host1.cdp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host1.cdp
new file mode 100644
index 00000000000..ae648c66207
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host1.cdp
@@ -0,0 +1,639 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>CCmDance2_1</label>
+ <UUID>CcmDance2_1</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Client Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ClientDanceHomeImplementation">
+ <name>ClientDanceHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ClientDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/ClientModule/ClientDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.ClientModule.SessionClientDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+<!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+<!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ClientDanceImplementation">
+ <name>ClientDanceImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+ <!-- Test Driver implementation-->
+ <!-- Home implementation -->
+ <implementation id="TestDriverHomeImplementation">
+ <name>TestDriverHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_TestDriverHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/DriverModule/TestDriverHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.DriverModule.SessionTestDriverHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="TestDriverImplementation">
+ <name>TestDriverImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+
+
+
+
+ <!-- Instances declarations -->
+
+ <!-- Client Dance instances-->
+ <instance id="ClientDanceHome1">
+ <name>ClientDanceHome1</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess2@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance1">
+ <name>ClientDance1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <!-- Test Driver instances-->
+ <instance id="TestDriverHome">
+ <name>TestDriverHome</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>TestDriverHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess2@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="TestDriver1">
+ <name>TestDriver1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>TestDriverImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriverHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriver1</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+
+
+ <!-- Connections declarations -->
+
+ <connection>
+ <name>client1_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance/serverHostInfo1.Port</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>server_receptacle1</name>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance.Component</location>
+ <provider>false</provider>
+ <portName>clientHostInfo1</portName>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client1_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance.Component</location>
+ <provider>false</provider>
+ <portName>hostnamePublishes</portName>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits1</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance/commands.Port</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client1_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance/supports.Port</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client1_naming</name>
+ <internalEndpoint>
+ <portName>naming</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4x.prismtech.com:21869</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_server</name>
+ <internalEndpoint>
+ <portName>server</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance/supports.Port</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_client1</name>
+ <internalEndpoint>
+ <portName>client1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client2</name>
+ <internalEndpoint>
+ <portName>client2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ClientDance2/supports.Port</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_sayHello</name>
+ <internalEndpoint>
+ <portName>handshake</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:12345#Host2/CcmDance2_1.DeploymentPlan/ServerDance/supports.Port</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact id="ClientDanceArtifact">
+ <name>ClientDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libClientCcmDance2Demo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host2.cdp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host2.cdp
new file mode 100644
index 00000000000..df5d7435536
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2-host2.cdp
@@ -0,0 +1,969 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>CCmDance2_1</label>
+ <UUID>CcmDance2_1</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ServerDanceHomeImplementation">
+ <name>ServerDanceHomeImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ <artifact>ServerDanceArtifact2</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ServerDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/ServerModule/ServerDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.ServerModule.SessionServerDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+<!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+<!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/Command:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createCommandFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/FooValueType:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createFooValueTypeFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ServerDanceImplementation">
+ <name>ServerDanceImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ </implementation>
+
+
+
+ <!-- Client Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ClientDanceHomeImplementation">
+ <name>ClientDanceHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ClientDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/ClientModule/ClientDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.ClientModule.SessionClientDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+<!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+<!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ClientDanceImplementation">
+ <name>ClientDanceImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance id="ServerDanceHome">
+ <name>ServerDanceHome</name>
+ <node>Host2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ServerDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceProcess@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ServerDance">
+ <name>ServerDance</name>
+ <node>Host2</node>
+ <source/>
+ <implementation>ServerDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDance</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStruct-->
+ <name>fooStruct</name>
+ <value>
+ <type>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </type>
+ <value>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>250</long>
+ </value>
+ </member>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnum-->
+ <name>fooEnum</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </type>
+ <value>
+ <enum>B</enum>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStructSeq-->
+ <name>fooStructSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello1</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>123</long>
+ </value>
+ </member>
+ </element>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello2</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>456</long>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnumSeq-->
+ <name>fooEnumSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <enum>A</enum>
+ </element>
+ <element>
+ <enum>C</enum>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname1-->
+ <name>expectedClientHostname1</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname2-->
+ <name>expectedClientHostname2</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <instance id="ClientDanceHome2">
+ <name>ClientDanceHome2</name>
+ <node>Host2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess1@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance2">
+ <name>ClientDance2</name>
+ <node>Host2</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <!-- Connections declarations -->
+
+ <connection>
+ <name>client1_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo1</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>serverHostInfo2</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_receptacle1</name>
+ <internalEndpoint>
+ <portName>clientHostInfo1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4x.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host1%00CcmDance2_1/ClientDance1/clientHostInfo</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>server_receptacle2</name>
+ <internalEndpoint>
+ <portName>clientHostInfo2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4x.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host1%00CcmDance2_1/ClientDance1/hostnameResults</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client2_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits1</name>
+ <internalEndpoint>
+ <portName>commands</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits2</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>commands</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_sayHello</name>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_naming</name>
+ <internalEndpoint>
+ <portName>naming</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4x.prismtech.com:21869</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_server</name>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client2</name>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_sayHello</name>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+
+
+
+
+ <!-- Artifacts declarations -->
+ <artifact id="ServerDanceArtifact1">
+ <name>ServerDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libServerCcmDance2Demo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/Command:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createCommandFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ServerDanceArtifact2">
+ <name>ServerDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libServerCcmDance2Demo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/FooValueType:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createFooValueTypeFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ClientDanceArtifact">
+ <name>ClientDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libClientCcmDance2Demo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2.cdp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2.cdp
new file mode 100644
index 00000000000..7dcafb1a069
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance2.cdp
@@ -0,0 +1,1300 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>CCmDance2_1</label>
+ <UUID>CcmDance2_1</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ServerDanceHomeImplementation">
+ <name>ServerDanceHomeImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ <artifact>ServerDanceArtifact2</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ServerDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/ServerModule/ServerDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.ServerModule.SessionServerDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+<!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+<!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/Command:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createCommandFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/FooValueType:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createFooValueTypeFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ServerDanceImplementation">
+ <name>ServerDanceImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ </implementation>
+
+
+
+ <!-- Client Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ClientDanceHomeImplementation">
+ <name>ClientDanceHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ClientDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/ClientModule/ClientDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.ClientModule.SessionClientDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+<!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+<!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ClientDanceImplementation">
+ <name>ClientDanceImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+ <!-- Test Driver implementation-->
+ <!-- Home implementation -->
+ <implementation id="TestDriverHomeImplementation">
+ <name>TestDriverHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_TestDriverHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/DriverModule/TestDriverHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2Test.DriverModule.SessionTestDriverHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="TestDriverImplementation">
+ <name>TestDriverImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+
+
+
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance id="ServerDanceHome">
+ <name>ServerDanceHome</name>
+ <node>Host2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ServerDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceProcess@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ServerDance">
+ <name>ServerDance</name>
+ <node>Host2</node>
+ <source/>
+ <implementation>ServerDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDance</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStruct-->
+ <name>fooStruct</name>
+ <value>
+ <type>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </type>
+ <value>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>250</long>
+ </value>
+ </member>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnum-->
+ <name>fooEnum</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </type>
+ <value>
+ <enum>B</enum>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStructSeq-->
+ <name>fooStructSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello1</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>123</long>
+ </value>
+ </member>
+ </element>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello2</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>456</long>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnumSeq-->
+ <name>fooEnumSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2Test/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <enum>A</enum>
+ </element>
+ <element>
+ <enum>C</enum>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname1-->
+ <name>expectedClientHostname1</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname2-->
+ <name>expectedClientHostname2</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <!-- Client Dance instances-->
+ <instance id="ClientDanceHome1">
+ <name>ClientDanceHome1</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess2@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance1">
+ <name>ClientDance1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance id="ClientDanceHome2">
+ <name>ClientDanceHome2</name>
+ <node>Host2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess1@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance2">
+ <name>ClientDance2</name>
+ <node>Host2</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <!-- Test Driver instances-->
+ <instance id="TestDriverHome">
+ <name>TestDriverHome</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>TestDriverHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess2@CcmDance2Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="TestDriver1">
+ <name>TestDriver1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>TestDriverImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriverHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriver1</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+
+
+ <!-- Connections declarations -->
+
+ <connection>
+ <name>client1_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>serverHostInfo1</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>serverHostInfo2</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_receptacle1</name>
+ <internalEndpoint>
+ <portName>clientHostInfo1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_receptacle2</name>
+ <internalEndpoint>
+ <portName>clientHostInfo2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits1</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>commands</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits2</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>commands</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_naming</name>
+ <internalEndpoint>
+ <portName>naming</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:21869</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client2_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_naming</name>
+ <internalEndpoint>
+ <portName>naming</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::rhel4y.prismtech.com:21869</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_server</name>
+ <internalEndpoint>
+ <portName>server</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client1</name>
+ <internalEndpoint>
+ <portName>client1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client2</name>
+ <internalEndpoint>
+ <portName>client2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_sayHello</name>
+ <internalEndpoint>
+ <portName>handshake</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+
+
+
+
+ <!-- Artifacts declarations -->
+ <artifact id="ServerDanceArtifact1">
+ <name>ServerDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libServerCcmDance2Demo.so</location>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createCommandFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/Command:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ServerDanceArtifact2">
+ <name>ServerDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libServerCcmDance2Demo.so</location>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createFooValueTypeFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/FooValueType:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ClientDanceArtifact">
+ <name>ClientDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2/c++/i686-pc-linux-gnu/libClientCcmDance2Demo.so</location>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2Test/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host1.cdp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host1.cdp
new file mode 100644
index 00000000000..0aa52abe9a0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host1.cdp
@@ -0,0 +1,1055 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>CCmDance2_1</label>
+ <UUID>CcmDance2_1</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ServerDanceHomeImplementation">
+ <name>ServerDanceHomeImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ <artifact>ServerDanceArtifact2</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ServerDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/ServerModule/ServerDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2WithFTTest.ServerModule.FTSessionServerDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- FAULT_TOLERANCE_REPLICATION_STYLE -->
+ <name>cdmw.config.FaultToleranceReplicationStyle</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FTReplicationStyleValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/FTReplicationStyleValue:1.0</typeId>
+ <member>STATELSESS</member>
+ <member>COLD_PASSIVE</member>
+ <member>WARM_PASSIVE</member>
+ <member>ACTIVE</member>
+ <member>ACTIVE_WITH_VOTING</member>
+ </enum>
+ </type>
+ <value>
+ <enum>WARM_PASSIVE</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ServerDanceImplementation">
+ <name>ServerDanceImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ <artifact>ServerDanceArtifact2</artifact>
+ </implementation>
+
+
+
+ <!-- Client Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ClientDanceHomeImplementation">
+ <name>ClientDanceHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ <artifact>ServerDanceArtifact1</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ClientDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/ClientModule/ClientDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2WithFTTest.ClientModule.SessionClientDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ClientDanceImplementation">
+ <name>ClientDanceImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ <artifact>ServerDanceArtifact1</artifact>
+ </implementation>
+
+
+ <!-- Test Driver implementation-->
+ <!-- Home implementation -->
+ <implementation id="TestDriverHomeImplementation">
+ <name>TestDriverHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_TestDriverHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/DriverModule/TestDriverHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2WithFTTest.DriverModule.SessionTestDriverHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="TestDriverImplementation">
+ <name>TestDriverImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance id="ServerDanceHome1">
+ <name>ServerDanceHome1</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ServerDanceHomeImplementation</implementation>
+
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceProcess1@CcmDance2WithFTApplication</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ServerDance1">
+ <name>ServerDance1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>ServerDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceHome1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDance1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- FAULT_TOLERANT GROUP NAME-->
+ <name>cdmw.config.FaultToleranceGroupName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceFT</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStruct-->
+ <name>fooStruct</name>
+ <value>
+ <type>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </type>
+ <value>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>250</long>
+ </value>
+ </member>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnum-->
+ <name>fooEnum</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </type>
+ <value>
+ <enum>B</enum>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStructSeq-->
+ <name>fooStructSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello1</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>123</long>
+ </value>
+ </member>
+ </element>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello2</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>456</long>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnumSeq-->
+ <name>fooEnumSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <enum>A</enum>
+ </element>
+ <element>
+ <enum>C</enum>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname1-->
+ <name>expectedClientHostname1</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname2-->
+ <name>expectedClientHostname2</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <!-- Client Dance instances-->
+ <instance id="ClientDanceHome1">
+ <name>ClientDanceHome1</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess1@CcmDance2WithFTApplication</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance1">
+ <name>ClientDance1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Test Driver instances-->
+ <instance id="TestDriverHome">
+ <name>TestDriverHome</name>
+ <node>Host1</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>TestDriverHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess1@CcmDance2WithFTApplication</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="TestDriver1">
+ <name>TestDriver1</name>
+ <node>Host1</node>
+ <source/>
+ <implementation>TestDriverImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriverHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriver1</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+
+
+ <!-- Connections declarations -->
+
+ <connection>
+ <name>client1_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>server_receptacle1</name>
+ <internalEndpoint>
+ <portName>clientHostInfo1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_receptacle2</name>
+ <internalEndpoint>
+ <portName>clientHostInfo2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4y.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host2%00CcmDance2_1/ClientDance2/clientHostInfo</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client1_consumer_to_publishes</name>
+<!-- <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance1</instance>
+ </internalEndpoint> -->
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>false</provider>
+ <portName>hostnamePublishes</portName>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client2_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4y.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host2%00CcmDance2_1/ClientDance2/hostnameResults</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits1</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client1_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_server</name>
+ <internalEndpoint>
+ <portName>server</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_client1</name>
+ <internalEndpoint>
+ <portName>client1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client2</name>
+ <internalEndpoint>
+ <portName>client2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4y.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host2%00CcmDance2_1/ClientDance2/supports</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_sayHello</name>
+ <internalEndpoint>
+ <portName>handshake</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+
+
+
+
+ <!-- Artifacts declarations -->
+ <artifact id="ServerDanceArtifact1">
+ <name>ServerDanceArtifact1</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2_with_ft/c++/i686-pc-linux-gnu/libServerCcmDance2WithFTDemo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/EventTypeModule/Command:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createCommandFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ServerDanceArtifact2">
+ <name>ServerDanceArtifact2</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2_with_ft/c++/i686-pc-linux-gnu/libServerCcmDance2WithFTDemo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DL:acme.com/CcmDance2WithFTTest/FooValueType:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createFooValueTypeFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ClientDanceArtifact">
+ <name>ClientDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2_with_ft/c++/i686-pc-linux-gnu/libClientCcmDance2WithFTDemo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host2.cdp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host2.cdp
new file mode 100644
index 00000000000..a61170a7ed0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/CcmDance4-host2.cdp
@@ -0,0 +1,941 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>CCmDance2_1</label>
+ <UUID>CcmDance2_1</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ServerDanceHomeImplementation">
+ <name>ServerDanceHomeImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ <artifact>ServerDanceArtifact2</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ServerDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/ServerModule/ServerDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2WithFTTest.ServerModule.FTSessionServerDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- FAULT_TOLERANCE_REPLICATION_STYLE -->
+ <name>cdmw.config.FaultToleranceReplicationStyle</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FTReplicationStyleValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/FTReplicationStyleValue:1.0</typeId>
+ <member>STATELSESS</member>
+ <member>COLD_PASSIVE</member>
+ <member>WARM_PASSIVE</member>
+ <member>ACTIVE</member>
+ <member>ACTIVE_WITH_VOTING</member>
+ </enum>
+ </type>
+ <value>
+ <enum>WARM_PASSIVE</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ServerDanceImplementation">
+ <name>ServerDanceImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact1</artifact>
+ <artifact>ServerDanceArtifact2</artifact>
+ </implementation>
+
+
+
+ <!-- Client Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ClientDanceHomeImplementation">
+ <name>ClientDanceHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ <artifact>ServerDanceArtifact1</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ClientDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/ClientModule/ClientDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2WithFTTest.ClientModule.SessionClientDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ClientDanceImplementation">
+ <name>ClientDanceImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ <artifact>ServerDanceArtifact1</artifact>
+ </implementation>
+
+
+ <!-- Test Driver implementation-->
+ <!-- Home implementation -->
+ <implementation id="TestDriverHomeImplementation">
+ <name>TestDriverHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_TestDriverHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/DriverModule/TestDriverHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance2WithFTTest.DriverModule.SessionTestDriverHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="TestDriverImplementation">
+ <name>TestDriverImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+
+
+
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance id="ServerDanceHome2">
+ <name>ServerDanceHome2</name>
+ <node>Host2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ServerDanceHomeImplementation</implementation>
+
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceProcess2@CcmDance2WithFTApplication</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ServerDance2">
+ <name>ServerDance2</name>
+ <node>Host2</node>
+ <source/>
+ <implementation>ServerDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceHome2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDance2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- FAULT_TOLERANT GROUP NAME-->
+ <name>cdmw.config.FaultToleranceGroupName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceFT</string>
+ </value>
+ </value>
+ </configProperty>
+
+
+ <configProperty>
+ <!-- Attribute: fooStruct-->
+ <name>fooStruct</name>
+ <value>
+ <type>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </type>
+ <value>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>250</long>
+ </value>
+ </member>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnum-->
+ <name>fooEnum</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </type>
+ <value>
+ <enum>B</enum>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooStructSeq-->
+ <name>fooStructSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>FooStruct</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooStruct:1.0</typeId>
+ <member>
+ <name>fooString</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello1</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>123</long>
+ </value>
+ </member>
+ </element>
+ <element>
+ <member>
+ <name>fooString</name>
+ <value>
+ <string>hello2</string>
+ </value>
+ </member>
+ <member>
+ <name>fooLong</name>
+ <value>
+ <long>456</long>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: fooEnumSeq-->
+ <name>fooEnumSeq</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>FooEnum</name>
+ <typeId>IDL:acme.com/CcmDance2WithFTTest/FooEnum:1.0</typeId>
+ <member>A</member>
+ <member>B</member>
+ <member>C</member>
+ </enum>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <enum>A</enum>
+ </element>
+ <element>
+ <enum>C</enum>
+ </element>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname1-->
+ <name>expectedClientHostname1</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname2-->
+ <name>expectedClientHostname2</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <!-- Client Dance instances-->
+ <instance id="ClientDanceHome2">
+ <name>ClientDanceHome2</name>
+ <node>Host2</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess2@CcmDance2WithFTApplication</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance2">
+ <name>ClientDance2</name>
+ <node>Host2</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4y.prismtech.com</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Connections declarations -->
+ <connection>
+ <name>client2_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>server_receptacle1</name>
+ <internalEndpoint>
+ <portName>clientHostInfo1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4x.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host1%00CcmDance2_1/ClientDance1/clientHostInfo</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+
+ <connection>
+ <name>server_receptacle2</name>
+ <internalEndpoint>
+ <portName>clientHostInfo2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaloc:iiop:1.2@rhel4x.prismtech.com:12345/%14%01%0f%00NUP%00%00%00%16%02%00%00%00%01%00%00%00RootPOA%00Host1%00CcmDance2_1/ClientDance1/hostnameResults</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client2_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits2</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>client2_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname::localhost:21869#CDMW__FaultToleranceDomain/ServerDanceFT</location>
+ <provider>true</provider>
+ <portName/>
+ <supportedType/>
+ </externalReference>
+ </connection>
+
+ <connection>
+ <name>testDriver_client2</name>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+
+ <!-- Artifacts declarations -->
+ <!-- Artifacts declarations -->
+ <artifact id="ServerDanceArtifact1">
+ <name>ServerDanceArtifact1</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2_with_ft/c++/i686-pc-linux-gnu/libServerCcmDance2WithFTDemo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/EventTypeModule/Command:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createCommandFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ServerDanceArtifact2">
+ <name>ServerDanceArtifact2</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2_with_ft/c++/i686-pc-linux-gnu/libServerCcmDance2WithFTDemo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DL:acme.com/CcmDance2WithFTTest/FooValueType:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createFooValueTypeFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="ClientDanceArtifact">
+ <name>ClientDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance2_with_ft/c++/i686-pc-linux-gnu/libClientCcmDance2WithFTDemo.so</location>
+ <execParameter>
+ <name>repid</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance2WithFTTest/EventTypeModule/HostnameResult:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>factory_entrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createHostnameResultFactory</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc
new file mode 100644
index 00000000000..8b65250d8bd
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc
@@ -0,0 +1,9 @@
+// $Id$
+project : dance, taoexe, xerces, aceexe, dance_config_handlers, dance_logger {
+ exename = DeploymentPlanDump
+
+ Source_Files {
+ test.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/NewCcmDance1.cdp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/NewCcmDance1.cdp
new file mode 100644
index 00000000000..946ee91d2b1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/NewCcmDance1.cdp
@@ -0,0 +1,1063 @@
+<Deployment:DeploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
+ <label>CCmDance1</label>
+ <UUID>CcmDance1</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Server Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ServerDanceHomeImplementation">
+ <name>ServerDanceHomeImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ServerDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance1Test/ServerModule/ServerDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance1Test.ServerModule.SessionServerDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+<!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+<!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/Example/SaySomethingElse:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createSaySomethingElseFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ServerDanceImplementation">
+ <name>ServerDanceImplementation</name>
+ <source/>
+ <artifact>ServerDanceArtifact</artifact>
+ </implementation>
+
+
+
+ <!-- Client Dance implementation-->
+ <!-- Home implementation -->
+ <implementation id="ClientDanceHomeImplementation">
+ <name>ClientDanceHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_ClientDanceHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance1Test/ClientModule/ClientDanceHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance1Test.ClientModule.SessionClientDanceHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+ <!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/Example/SaySomethingElse:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createSaySomethingElseFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="ClientDanceImplementation">
+ <name>ClientDanceImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+ <!-- Test Driver implementation-->
+ <!-- Home implementation -->
+ <implementation id="TestDriverHomeImplementation">
+ <name>TestDriverHomeImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_CCM_TestDriverHome</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- COMPONENT_KIND -->
+ <name>cdmw.config.ComponentKind</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ComponentKindValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ComponentKindValue:1.0</typeId>
+ <member>SERVICE</member>
+ <member>SESSION</member>
+ <member>PROCESS</member>
+ <member>ENTITY</member>
+ <member>UNCLASSIFIED</member>
+ </enum>
+ </type>
+ <value>
+ <enum>SESSION</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- SERVANT_LIFETIME -->
+ <name>cdmw.config.ServantLifeTime</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ServantLifeTimeValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ServantLifetimeValue:1.0</typeId>
+ <member>COMPONENT_LIFETIME</member>
+ <member>METHOD_LIFETIME</member>
+ <member>TRANSACTION_LIFETIME</member>
+ <member>CONTAINER_LIFETIME</member>
+ </enum>
+ </type>
+ <value>
+ <enum>CONTAINER_LIFETIME</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- THREADING_POLICY -->
+ <name>cdmw.config.ThreadingPolicy</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>ThreadingPolicyValue</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ThreadingPolicyValue:1.0</typeId>
+ <member>SERIALIZE</member>
+ <member>MULTITHREAD</member>
+ </enum>
+ </type>
+ <value>
+ <enum>MULTITHREAD</enum>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_REPOSITORY_ID -->
+ <name>cdmw.config.HomeRepositoryId</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>IDL:acme.com/CcmDance1Test/DriverModule/TestDriverHome:1.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <!-- HOME_SERVANT_CLASSNAME -->
+ <name>cdmw.config.HomeServantClassName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Cdmw.CCM.CIF.CdmwCcmDance1Test.DriverModule.SessionTestDriverHome_impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <!-- <execParameter> -->
+ <!-- VALUETYPE_FACTORY_DEPENDENCIES -->
+ <!-- <name>cdmw.config.ValuetypeFactoryDependencies</name>
+ <value>
+ <type>
+ <kind>tk_sequence</kind>
+ <sequence>
+ <elementType>
+ <kind>tk_struct</kind>
+ <struct>
+ <name>ValuetypeFactoryDescription</name>
+ <typeId>IDL:thalesgroup.com/CdmwDeployment/ValuetypeFactoryDescription:1.0</typeId>
+ <member>
+ <name>repid</name>
+ <type>
+ <kind>tk_alias</kind>
+ <alias>
+ <name>RepositoryId</name>
+ <typeId>IDL:omg.org/CORBA/RepositoryId</typeId>
+ <elementType>
+ <kind>tk_string</kind>
+ </elementType>
+ </alias>
+ </type>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </member>
+ </struct>
+ </elementType>
+ </sequence>
+ </type>
+ <value>
+ <element>
+ <member>
+ <name>repid</name>
+ <value>
+ <string>IDL:acme.com/Example/SaySomethingElse:1.0</string>
+ </value>
+ </member>
+ <member>
+ <name>factory_entrypoint</name>
+ <value>
+ <string>createSaySomethingElseFactory</string>
+ </value>
+ </member>
+ </element>
+ </value>
+ </value>
+ </execParameter> -->
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="TestDriverImplementation">
+ <name>TestDriverImplementation</name>
+ <source/>
+ <artifact>ClientDanceArtifact</artifact>
+ </implementation>
+
+
+
+
+
+
+
+
+
+
+ <!-- Instances declarations -->
+
+ <!-- Server Dance instances-->
+ <instance id="ServerDanceHome">
+ <name>ServerDanceHome</name>
+ <node>MyHost</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ServerDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceProcess@CcmDance1Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ServerDance">
+ <name>ServerDance</name>
+ <node>MyHost</node>
+ <source/>
+ <implementation>ServerDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDanceHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ServerDance</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname1-->
+ <name>expectedClientHostname1</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedClientHostname2-->
+ <name>expectedClientHostname2</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <!-- Client Dance instances-->
+ <instance id="ClientDanceHome">
+ <name>ClientDanceHome</name>
+ <node>MyHost</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>ClientDanceHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess@CcmDance1Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="ClientDance1">
+ <name>ClientDance1</name>
+ <node>MyHost</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client1</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance id="ClientDance2">
+ <name>ClientDance2</name>
+ <node>MyHost</node>
+ <source/>
+ <implementation>ClientDanceImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDance2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: configuration-->
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Client2</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- Attribute: expectedServerHostname-->
+ <name>expectedServerHostname</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rhel4x</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <!-- Test Driver instances-->
+ <instance id="TestDriverHome">
+ <name>TestDriverHome</name>
+ <node>MyHost</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>TestDriverHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ClientDanceProcess@CcmDance1Application</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="TestDriver1">
+ <name>TestDriver1</name>
+ <node>MyHost</node>
+ <source/>
+ <implementation>TestDriverImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriverHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TestDriver1</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+
+
+ <!-- Connections declarations -->
+
+ <connection>
+ <name>client1_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>serverHostInfo1</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_receptacle</name>
+ <internalEndpoint>
+ <portName>serverHostInfo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>serverHostInfo2</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_receptacle1</name>
+ <internalEndpoint>
+ <portName>clientHostInfo1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_receptacle2</name>
+ <internalEndpoint>
+ <portName>clientHostInfo2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>clientHostInfo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_consumer_to_publishes</name>
+ <internalEndpoint>
+ <portName>hostnamePublishes</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>hostnameResults</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits1</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>commands</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>server_consumer_to_emits2</name>
+ <internalEndpoint>
+ <portName>commandEmits</portName>
+ <provider>false</provider>
+ <kind>EventEmitter</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>commands</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client1_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>client2_sayHello</name>
+ <internalEndpoint>
+ <portName>sayHello</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_server</name>
+ <internalEndpoint>
+ <portName>server</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client1</name>
+ <internalEndpoint>
+ <portName>client1</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance1</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_client2</name>
+ <internalEndpoint>
+ <portName>client2</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ClientDance2</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>testDriver_sayHello</name>
+ <internalEndpoint>
+ <portName>handshake</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance>TestDriver1</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>supports</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance>ServerDance</instance>
+ </internalEndpoint>
+ </connection>
+
+
+
+
+
+ <!-- Artifacts declarations -->
+ <artifact id="ServerDanceArtifact">
+ <name>ServerDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance1/c++/i686-pc-linux-gnu/libServerCcmDance1Demo.so</location>
+ </artifact>
+
+ <artifact id="ClientDanceArtifact">
+ <name>ClientDanceArtifact</name>
+ <source/>
+ <node/>
+ <location>/home/sl/install/ofccm_v0/demos/demo_dance1/c++/i686-pc-linux-gnu/libClientCcmDance1Demo.so</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanDump/test.cpp b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/test.cpp
new file mode 100644
index 00000000000..097e1e14776
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/test.cpp
@@ -0,0 +1,37 @@
+// $Id$
+#include "Config_Handlers/DnC_Dump.h"
+#include "Config_Handlers/XML_File_Intf.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ if (argc < 1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Incorrect count of arguments. ")
+ ACE_TEXT ("Path to deployment plan has not been specified.\n")));
+ return 1;
+ }
+ CIAO::Config_Handlers::XML_File_Intf file (argv[1]);
+ file.add_search_path (ACE_TEXT ("DANCE_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("CIAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("TAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ Deployment::DeploymentPlan * plan = file.release_plan();
+ Deployment::DnC_Dump::dump (*plan);
+ delete plan;
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("DAnCE_DeploymentPlanDump::main\n");
+ return -1;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception\n")));
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc
new file mode 100644
index 00000000000..dbd8a175592
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc
@@ -0,0 +1,9 @@
+// $Id$
+project : dance, taolib, xerces, dance_config_handlers, dance_logger {
+ exename = DeploymentPlanTestReferences
+
+ Source_Files {
+ test.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp
new file mode 100644
index 00000000000..b771922dda0
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp
@@ -0,0 +1,55 @@
+// $Id$
+#include "ace/Auto_Ptr.h"
+#include "Config_Handlers/DnC_Dump.h"
+#include "Config_Handlers/XML_File_Intf.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ if (argc < 1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Incorrect count of arguments. Path to deployment plan has not been specified.\n")));
+ return 1;
+ }
+ //parsing plan
+ CIAO::Config_Handlers::XML_File_Intf file (argv[1]);
+ file.add_search_path (ACE_TEXT ("DANCE_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("CIAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("TAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ auto_ptr<Deployment::DeploymentPlan> plan (file.release_plan());
+
+ //check instance references to corresponding implementations
+ for ( ::CORBA::ULong i = 0; i < plan->instance.length(); i++)
+ {
+ if (plan->instance[i].implementationRef > plan->implementation.length() - 1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("incorrect implementationRef in instance %C.\n"), plan->instance[i].name.in()));
+ return 1;
+ }
+ }
+
+ //check artifact reference for implementations of Home objects
+ for ( ::CORBA::ULong i = 0; i < plan->implementation.length(); i++)
+ {
+ if (plan->implementation[i].artifactRef.length() > 0)
+ {
+ if (plan->implementation[i].artifactRef[0] > plan->artifact.length() - 1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("incorrect artifactRef in the implementation %C.\n"), plan->implementation[i].name.in()));
+ return 1;
+ }
+ }
+ }
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unexpected exception")));
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc b/modules/CIAO/DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc
new file mode 100644
index 00000000000..5c4422714db
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc
@@ -0,0 +1,9 @@
+// $Id$
+project : dance, xerces, dance_config_handlers, dance_logger, dance_domainapplication_stub, dance_executionmanager_stub {
+ exename = DeploymentTest1
+
+ Source_Files {
+ test.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/DeploymentTest1/test.cpp b/modules/CIAO/DAnCE/tests/DeploymentTest1/test.cpp
new file mode 100644
index 00000000000..14c9332e77b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentTest1/test.cpp
@@ -0,0 +1,68 @@
+// $Id$
+#include "ace/Auto_Ptr.h"
+#include "DAnCE/Deployment/Deployment_DeploymentPlanC.h"
+#include "DAnCE/Deployment/Deployment_ExecutionManagerC.h"
+#include "DAnCE/Deployment/Deployment_DomainApplicationManagerC.h"
+#include "DAnCE/Deployment/Deployment_DomainApplicationC.h"
+#include "DAnCE/Deployment/Deployment_NodeManagerC.h"
+#include "DAnCE/Deployment/Deployment_NodeApplicationManagerC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Config_Handlers/DnC_Dump.h"
+#include "Config_Handlers/XML_File_Intf.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ CIAO::Config_Handlers::XML_File_Intf file (argv[1]);
+ file.add_search_path (ACE_TEXT ("DANCE_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("CIAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ file.add_search_path (ACE_TEXT ("TAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+ auto_ptr<Deployment::DeploymentPlan> pplan (file.release_plan());
+
+ ACE_DEBUG ((LM_DEBUG, "Test starts.\n"));
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ const char * ior = "file://execution_manager.ior";
+
+ CORBA::Object_var obj = orb->string_to_object (ior);
+ if (CORBA::is_nil (obj. in()))
+ {
+ throw 0;
+ }
+
+ Deployment::ExecutionManager_var em = Deployment::ExecutionManager::_narrow (obj);
+ if (CORBA::is_nil (em.in ()))
+ {
+ throw 0;
+ }
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("preparePlan\n")));
+ Deployment::DomainApplicationManager_var dam = em->preparePlan (*pplan, Deployment::ResourceCommitmentManager::_nil());
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("startLaunch\n")));
+ //call startLaunch
+ Deployment::Properties dp;
+ Deployment::Connections_var dc;
+ Deployment::Application_var na = dam->startLaunch (dp, dc.out());
+ Deployment::DomainApplication_var da = Deployment::DomainApplication::_narrow (na);
+ if (CORBA::is_nil (da.in ()))
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("narrow fails\n")));
+ }
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("finishLaunch\n")));
+ da->finishLaunch (dc.in(), true);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Test succeded!\n")));
+
+ }
+ catch (const CORBA::Exception &e)
+ {
+ e._tao_print_exception ("DeploymentTest1::main\t\n");
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Uncaught CORBA exception\n")));
+ return 1;
+ }
+ catch (...)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/Dummy.idl b/modules/CIAO/DAnCE/tests/NameServiceTest/Dummy.idl
new file mode 100644
index 00000000000..1f0edee59cd
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/Dummy.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#ifndef DUMMY_IDL
+#define DUMMY_IDL
+
+module NameServiceTest
+{
+ interface Dummy {
+ string sayHello();
+ };
+};
+
+#endif /* DUMMY_IDL */
+
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.cpp b/modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.cpp
new file mode 100644
index 00000000000..4fe5dea9b16
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.cpp
@@ -0,0 +1,14 @@
+// $Id$
+#include "DummyImpl.h"
+
+namespace NameServiceTest
+ {
+
+ char * DummyImpl::sayHello (
+ )
+ {
+ return CORBA::string_dup (this->helloSentence);
+ }
+
+ } // namespace ObjectLocatorTest
+
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.h b/modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.h
new file mode 100644
index 00000000000..7b54d8b1386
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/DummyImpl.h
@@ -0,0 +1,25 @@
+// $Id$
+#ifndef DUMMYIMPL_H_
+#define DUMMYIMPL_H_
+
+#include "DummyS.h"
+
+namespace NameServiceTest
+ {
+
+ class DummyImpl
+ : public virtual POA_NameServiceTest::Dummy
+ {
+ public:
+ DummyImpl() : helloSentence ("A dummy hello sentence.") {};
+
+ virtual char * sayHello (
+ );
+
+ private:
+ const char * helloSentence;
+ };
+
+ } // namespace POA_ObjectLocatorTest
+
+#endif /*DUMMYIMPL_H_*/
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/NameServiceTest.mpc b/modules/CIAO/DAnCE/tests/NameServiceTest/NameServiceTest.mpc
new file mode 100644
index 00000000000..64068565ed3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/NameServiceTest.mpc
@@ -0,0 +1,30 @@
+// $Id$
+
+project(*idl): ciaoidldefaults {
+ IDL_Files {
+ Dummy.idl
+ }
+ custom_only = 1
+}
+
+project (*NameServiceTestServer): dance, taoserver, iortable, naming_serv, dance_logger {
+ after += *idl
+ IDL_Files {
+ }
+ Source_Files {
+ srv_main.cpp
+ DummyC.cpp
+ DummyS.cpp
+ DummyImpl.cpp
+ }
+}
+
+project (NameServiceTestClient): dance, taoclient, naming, dance_logger {
+ after += *idl
+ IDL_Files {
+ }
+ Source_Files {
+ clt_main.cpp
+ DummyC.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/RegistrationPath.h b/modules/CIAO/DAnCE/tests/NameServiceTest/RegistrationPath.h
new file mode 100644
index 00000000000..4a6ea64c651
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/RegistrationPath.h
@@ -0,0 +1,9 @@
+// $Id$
+#ifndef REGISTRATIONPATH_H_
+#define REGISTRATIONPATH_H_
+
+const char * app_name = "app1";
+const char * inst_name = "inst1";
+const char * port_name = "port1";
+
+#endif /*REGISTRATIONPATH_H_*/
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/clt_main.cpp b/modules/CIAO/DAnCE/tests/NameServiceTest/clt_main.cpp
new file mode 100644
index 00000000000..ca0266e8206
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/clt_main.cpp
@@ -0,0 +1,85 @@
+// $Id$
+#include "ace/String_Base.h"
+#include <orbsvcs/orbsvcs/CosNamingC.h>
+#include "DAnCE/Logger/Log_Macros.h"
+#include "RegistrationPath.h"
+#include "DummyC.h"
+
+using namespace NameServiceTest;
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var naming_obj = orb->resolve_initial_references ("NameService");
+// CosNaming::NamingContext_var naming = CosNaming::NamingContext::_narrow(naming_obj.in());
+// CosNaming::Name name(1);
+//
+// name.length(1);
+//
+// name[0].id = CORBA::string_dup("Dummy");
+// name[0].kind = CORBA::string_dup("");
+//
+// CORBA::Object_ptr res_obj = naming->resolve(name);
+// if ( CORBA::is_nil(res_obj) )
+// {
+// ACE_ERROR ((LM_ERROR, "Failed to resolve object. The test failed.\n"));
+// return 1;
+// }
+// ACE_DEBUG ((LM_DEBUG, "resolve object : ok.\n"));
+//
+// Dummy_var res_dummy_obj = Dummy::_narrow(res_obj);
+// if ( CORBA::is_nil(res_dummy_obj) )
+// {
+// ACE_ERROR ((LM_ERROR, "Failed to narrow the resolved object to custom type. The test failed.\n"));
+// return 1;
+// }
+// ACE_DEBUG ((LM_DEBUG, "resolved object -> dummy : ok.\n"));
+//
+// ACE_DEBUG ((LM_DEBUG, "Dummy object returned : %s.", res_dummy_obj->sayHello()));
+// ACE_DEBUG ((LM_DEBUG, "The test succeeded."));
+ //glasgow.headquarters.eclipsesp.com:12345
+ ACE_CString url = "corbaname:rir:#app1.DeploymentPlan/Dummy";
+// url += app_name;
+// url += "/";
+// url += inst_name;
+// url += "/";
+// url += port_name;
+ ACE_DEBUG ((LM_DEBUG, "URL : %C\n", url.c_str()));
+
+ CORBA::Object_var obj = orb->string_to_object (url.c_str());
+ if (CORBA::is_nil (obj))
+ {
+ ACE_ERROR ((LM_ERROR, "Failed to convert url to object. The test failed.\n"));
+ return 1;
+ }
+ ACE_DEBUG ((LM_DEBUG, "URL -> object : ok.\n"));
+
+ Dummy_var dummy_obj = Dummy::_narrow (obj);
+ if (CORBA::is_nil (dummy_obj))
+ {
+ ACE_ERROR ((LM_ERROR, "Failed to narrow the object to custom type. The test failed.\n"));
+ return 1;
+ }
+ ACE_DEBUG ((LM_DEBUG, "object -> dummy : ok.\n"));
+
+ ACE_DEBUG ((LM_DEBUG, "Dummy object returned : %C.", dummy_obj->sayHello()));
+ ACE_DEBUG ((LM_DEBUG, "The test succeeded."));
+ return 0;
+ }
+ catch (const CORBA::Exception & e)
+ {
+ ACE_ERROR ((LM_ERROR, "A CORBA exception \"%C\" (%C) was thrown. The test failed."
+ , e._name(), e._info().c_str()));
+ return 1;
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "An exception was thrown. The test failed."));
+ return 1;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/run_test.pl b/modules/CIAO/DAnCE/tests/NameServiceTest/run_test.pl
new file mode 100755
index 00000000000..719974e5c50
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/run_test.pl
@@ -0,0 +1,73 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+my $iorbase = "server.ior";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $client_iorfile = $client->LocalFile ($iorbase);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile");
+$CL = $client->CreateProcess ("client", "-k file://$client_iorfile");
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
+
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/NameServiceTest/srv_main.cpp b/modules/CIAO/DAnCE/tests/NameServiceTest/srv_main.cpp
new file mode 100644
index 00000000000..2d501da9b54
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NameServiceTest/srv_main.cpp
@@ -0,0 +1,72 @@
+// $Id$
+#include "ace/OS_NS_stdio.h"
+#include <orbsvcs/orbsvcs/CosNamingC.h>
+#include <orbsvcs/orbsvcs/Naming/Naming_Loader.h>
+#include "DAnCE/Logger/Log_Macros.h"
+
+#include "DummyC.h"
+#include "DummyImpl.h"
+#include "RegistrationPath.h"
+
+using namespace NameServiceTest;
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ int argcm = argc + 2;
+ ACE_TCHAR ** argvm = new ACE_TCHAR* [argcm+1];
+ for (int i = 0; i < argc; ++i)
+ {
+ argvm[i] = argv[i];
+ }
+ ACE_TCHAR buf1[32];
+ ACE_OS::sprintf (buf1, ACE_TEXT("-ORBListenEndpoints"));
+ argvm[argcm-2] = buf1;
+ ACE_TCHAR buf2[32];
+ ACE_OS::sprintf (buf2, ACE_TEXT("iiop://:12345"));
+ argvm[argcm-1] = buf2;
+ argvm[argcm] = 0;
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argcm, argvm);
+
+ CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in ());
+
+ PortableServer::POAManager_var poa_manager = root_poa->the_POAManager();
+ poa_manager->activate();
+
+ DummyImpl servant;
+
+ PortableServer::ObjectId_var id = root_poa->activate_object (&servant);
+
+ Dummy_var dummy_obj = Dummy::_narrow (root_poa->id_to_reference (id));//servant._this();
+
+ TAO_Naming_Loader loader;
+
+ CORBA::Object_var obj_tmp = loader.create_object (orb.in(), argcm, argvm);
+ CORBA::Object_var naming_obj = orb->resolve_initial_references ("NameService");
+ CosNaming::NamingContext_var naming = CosNaming::NamingContext::_narrow (naming_obj.in());
+
+ CosNaming::Name name (1);
+
+ name.length (1);
+
+ name[0].id = CORBA::string_dup (app_name);
+ name[0].kind = CORBA::string_dup ("DeploymentPlan");
+
+ CosNaming::NamingContext_var naming_app = naming->bind_new_context (name);
+
+ name[0].id = CORBA::string_dup ("Dummy");
+ name[0].kind = CORBA::string_dup ("");
+ naming_app->bind (name, dummy_obj.in());
+
+ orb->run();
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "An error has occured."));
+ }
+ return 0;
+}
+
diff --git a/modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/NAM_NA.mpc b/modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/NAM_NA.mpc
new file mode 100644
index 00000000000..e251d79392b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/NAM_NA.mpc
@@ -0,0 +1,8 @@
+// $Id$
+project : dance, dance_nodemanager_stub, dance_nodeapplication_stub, dance_logger {
+ exename = NodeApplicationManagerNodeApplicationTest
+
+ Source_Files {
+ test.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp b/modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp
new file mode 100644
index 00000000000..b1bb33ea44b
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp
@@ -0,0 +1,48 @@
+// $Id$
+#include "DAnCE/Deployment/Deployment_NodeManagerC.h"
+#include "DAnCE/Deployment/Deployment_NodeApplicationC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ const char * ior = "file://node_manager.ior";
+ CORBA::Object_var obj = orb->string_to_object (ior);
+ if (CORBA::is_nil (obj))
+ {
+ throw 0;
+ }
+
+ Deployment::NodeManager_var nm = Deployment::NodeManager::_narrow (obj);
+ if (CORBA::is_nil (nm))
+ {
+ throw 0;
+ }
+
+ // Get NodeApplicationManager
+ Deployment::DeploymentPlan plan;
+ Deployment::NodeApplicationManager_var nam;
+ nam = nm->preparePlan (plan, Deployment::ResourceCommitmentManager::_nil());
+
+ // Call startLaunch
+ Deployment::Properties dp;
+ Deployment::Connections_var dc;
+ Deployment::Application_ptr app = nam->startLaunch (dp, dc.out());
+ Deployment::NodeApplication_var na = Deployment::NodeApplication::_narrow (app);
+ }
+ catch (const CORBA::Exception &e)
+ {
+ e._tao_print_exception ("DAnCE_NodeManager::main\t\n");
+ ACE_ERROR ((LM_ERROR, "Uncaught CORBA exception\n"));
+ return 1;
+ }
+ catch (...)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc b/modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc
new file mode 100644
index 00000000000..44882ded9ff
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc
@@ -0,0 +1,8 @@
+// $Id$
+project : dance_exe, dance_nodemanager_stub, dance_logger {
+ exename = NodeManagerNodeApplicationManagerTest
+
+ Source_Files {
+ test.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp b/modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp
new file mode 100644
index 00000000000..d7ead772ace
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp
@@ -0,0 +1,43 @@
+// $Id$
+#include "DAnCE/Deployment/Deployment_NodeManagerC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ const char * ior = "file://node_manager.ior";
+ CORBA::Object_var obj = orb->string_to_object (ior);
+ if (CORBA::is_nil (obj))
+ {
+ throw 0;
+ }
+
+ Deployment::NodeManager_var nm = Deployment::NodeManager::_narrow (obj);
+ if (CORBA::is_nil (nm))
+ {
+ throw 0;
+ }
+
+ Deployment::DeploymentPlan plan;
+ Deployment::NodeApplicationManager_ptr nam_ptr =
+ nm->preparePlan (plan, Deployment::ResourceCommitmentManager::_nil());
+ ACE_DEBUG ((LM_DEBUG, "Plan prepared\n"));
+
+ nm->destroyManager (nam_ptr);
+ ACE_DEBUG ((LM_DEBUG, "NodeApplicationManager object destroyed\n"));
+ }
+ catch (const CORBA::Exception &)
+ {
+ ACE_ERROR ((LM_ERROR, "Uncaught CORBA exception\n"));
+ return 1;
+ }
+ catch (...)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/TargetManager/CmpClient.cpp b/modules/CIAO/DAnCE/tests/TargetManager/CmpClient.cpp
new file mode 100644
index 00000000000..9d42e928a53
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/TargetManager/CmpClient.cpp
@@ -0,0 +1,305 @@
+// $Id$
+/**
+ * @file CmpClient.cpp
+ *
+ * @brief This file contains a client of TargetManager.
+ *
+ * It picks up the TM ior from the Targetmanager.ior file
+ * present in the current directory, and makes the calls on the
+ * TM to getAllResources and getAvailable resources
+ */
+
+#include "DAnCE/Deployment/Deployment_DataC.h"
+#include "DAnCE/Deployment/Deployment_ResourceCommitmentManagerC.h"
+#include "DAnCE/TargetManager/TargetManagerC.h"
+#include "ace/streams.h"
+#include "ace/FILE_IO.h"
+#include "ace/FILE_Connector.h"
+#include "ace/FILE_Addr.h"
+#include "ace/Get_Opt.h"
+#include "Config_Handlers/DnC_Dump.h"
+
+/**
+ * TM_Tester contains the code to test the TM Component
+ */
+namespace TM_Tester
+{
+ /**
+ * writes the extracted data to file
+ */
+ void write_to_file (::Deployment::Domain domain);
+
+ /// variable contains IOR of the TM
+ const ACE_TCHAR * stringified_TM_IOR;
+
+ /// if add or delete from domain
+ bool add_to_domain = true;
+
+ /// whether to test update domain or not
+ bool call_update = false;
+
+ /// contains the host name
+ const ACE_TCHAR* host_name;
+
+ /// parses the arguments and extracts the params
+ bool parse_args (int argc, ACE_TCHAR *argv[])
+ {
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("t:u:d"));
+ int c;
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 't':
+ stringified_TM_IOR = get_opts.opt_arg ();
+ break;
+ case 'u':
+ host_name = get_opts.opt_arg ();
+ call_update = true;
+ break;
+ case 'd':
+ add_to_domain = false;
+ break;
+ case '?': // display help for use of the server.
+ default:
+ DANCE_ERROR_RETURN (1, (LM_ERROR,
+ "usage: %s\n"
+ "-t <TM_IOR>\n"
+ "-u <host_name in update>\n"
+ "-n <delete , default add>\n"
+ "\n",
+ argv [0]),
+ false);
+ }
+
+ return true;
+ }
+}
+
+ /// The main function
+ int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
+ {
+ try {
+ // First initialize the ORB, that will remove some arguments...
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ if (!TM_Tester::parse_args (argc, argv))
+ return -1;
+
+ // Use the first argument to create the factory object reference,
+ // in real applications we use the naming service, but let's do
+ // the easy part first!
+ CORBA::Object_var factory_object =
+ orb->string_to_object (TM_Tester::stringified_TM_IOR);
+
+ // Now downcast the object reference to the appropriate type
+ CIAO::TargetManagerImpl_var targetCmp =
+ CIAO::TargetManagerImpl::_narrow (factory_object.in ());
+
+ // Now get the facet reference from the target Manager Component
+ Deployment::TargetManager_ptr targetI = targetCmp->provide_targetMgr ();
+
+ // Now make calls on the Target Manager facet
+
+ try
+ {
+ Deployment::Domain_var domainV = targetI->getAllResources ();
+ ::Deployment::DnC_Dump::dump (domainV);
+ }
+ catch(CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR (1, (LM_ERROR ,"Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR ,"Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR ,"Error:TargetManager:Exception in TargetManager call\n"));
+ }
+
+
+ // make a call to the commit resources .....
+
+ bool resource_available = true;
+
+ ::Deployment::ResourceAllocations resource_seq;
+
+ resource_seq.length (1);
+
+ resource_seq[0].elementName = CORBA::string_dup ("TargetManagerNode_1");
+
+ resource_seq[0].resourceName = CORBA::string_dup ("Processor");
+
+ resource_seq[0].property.length (1);
+ resource_seq[0].property[0].name =
+ CORBA::string_dup ("LoadAverage");
+
+ CORBA::Long d = 20;
+ resource_seq[0].property[0].value <<= d;
+
+ ::Deployment::ResourceCommitmentManager_ptr manager =
+ ::Deployment::ResourceCommitmentManager::_nil ();
+
+ try
+ {
+ manager = targetI->commitResources (resource_seq);
+ }
+ catch(const CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch (const ::Deployment::ResourceCommitmentFailure& e)
+ {
+ resource_available = 0;
+ DANCE_ERROR (1, (LM_ERROR, "TargetManager commitResources ResourceCommitmentFailure Exception\n"));
+
+ DANCE_ERROR (1, (LM_ERROR ,
+ "ResourceCommitmentFailure\n reason=[%C]\n elementName=[%C]\n resourceName=[%C]\n propertyName=[%C]\n",
+ e.reason.in (),
+ resource_seq[e.index].elementName.in (),
+ resource_seq[e.index].resourceName.in (),
+ e.propertyName.in ()));
+ }
+ catch(const CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:commitResources Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:Exception in TargetManager call"));
+ }
+
+ // Make a call to release resources , if resource < 0
+ try
+ {
+ {
+ d = 10;
+ resource_seq[0].property[0].value <<= d;
+ manager->releaseResources (resource_seq);
+ }
+ }
+ catch(const CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch (const Deployment::ResourceCommitmentFailure&)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager releaseResources ResourceNotAvailable Exception\n"));
+ }
+ catch(const CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:releaseResources Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:Exception in TargetManager call"));
+ }
+
+ // Here make a call on the TM with update domain and node deletion
+
+ ::Deployment::Domain updated;
+ updated.node.length (1);
+ updated.node[0].name = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (TM_Tester::host_name));
+
+ ::CORBA::StringSeq elements;
+ elements.length (0);
+
+
+ if (TM_Tester::call_update)
+ {
+ if (TM_Tester::add_to_domain)
+ {
+ try
+ {
+ targetI->updateDomain (elements , updated, ::Deployment::Add);
+ }
+ catch(CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:Exception in UpdateDomain call"));
+ }
+ }
+ else
+ {
+ try
+ {
+ targetI->updateDomain (elements , updated, ::Deployment::Delete);
+ }
+ catch(CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:Exception in UpdateDomain call"));
+ }
+ }
+ }
+
+ // Now make a call of getAvailableResources on the TargetManager ...
+ try
+ {
+ Deployment::Domain_var domainV = targetI->getAvailableResources();
+
+ // here write things to file ...
+ TM_Tester::write_to_file (domainV.in());
+
+ ::Deployment::DnC_Dump::dump (domainV);
+ }
+ catch(CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR ,"Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:Exception in TargetManager call\n"));
+ }
+
+ // Finally destroy the ORB
+ orb->destroy ();
+ }
+ catch (CORBA::Exception &)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Error:TargetManager:CORBA exception raised!\n"));
+ }
+ return 0;
+ }
+
+namespace TM_Tester
+{
+ void write_to_file (::Deployment::Domain domain)
+ {
+ for (size_t i = 0;i < domain.node.length ();i++)
+ {
+ std::ofstream out (domain.node[i].name.in ());
+
+ // write in the node usage ...
+ for (CORBA::ULong j = 0;j < domain.node[i].resource.length ();j++)
+ {
+
+ if (!ACE_OS::strcmp (domain.node[i].resource[j].name.in (), "Processor"))
+ {
+ CORBA::Double node_cpu;
+ domain.node[i].resource[j].property[0].value >>= node_cpu;
+ out << node_cpu << std::endl;
+ }
+ if (!ACE_OS::strcmp (domain.node[i].resource[j].name.in (), "NA_Monitor"))
+ {
+ std::string file_name = "NA_";
+ file_name += domain.node[i].name.in ();
+ ACE_FILE_IO file_io;
+ ACE_FILE_Connector (file_io, ACE_FILE_Addr (ACE_TEXT_ALWAYS_CHAR (file_name.c_str ())));
+ CORBA::Double na_node_cpu;
+ domain.node[i].resource[j].property[0].value >>= na_node_cpu;
+ char buf[BUFSIZ];
+ ACE_OS::memset (buf , 0 , BUFSIZ);
+ ACE_OS::sprintf (buf , "%f", na_node_cpu);
+ file_io.send (buf, ACE_OS::strlen (buf));
+ }
+ }
+
+ out.close ();
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/TargetManager/TM_Client.mpc b/modules/CIAO/DAnCE/tests/TargetManager/TM_Client.mpc
new file mode 100644
index 00000000000..b38f3c36986
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/TargetManager/TM_Client.mpc
@@ -0,0 +1,22 @@
+// $Id$
+
+// Client.mpc,v 1.6 2005/02/18 09:07:06 jwillemsen Exp
+
+project(TMClient): ccm_stub, dance_deployment_stub, dance_targetmanager_stub, dance_config_handlers {
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ CmpClient.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+
+ Template_Files {
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl b/modules/CIAO/DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl
new file mode 100755
index 00000000000..b5eea32ca38
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl
@@ -0,0 +1,62 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior");
+$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior");
+$iorfile3 = PerlACE::LocalFile ("NodeApp3.ior");
+$iorfile4 = PerlACE::LocalFile ("NodeApp4.ior");
+$iorfile5 = PerlACE::LocalFile ("NodeApp5.ior");
+
+#for ($iter = 0; $iter <= $#ARGV; $iter++) {
+# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") {
+# print "Run_Test Perl script for NodeApplicationTest \n\n";
+# print "run_test \n";
+# print "\n";
+# print "-h -- prints this information\n";
+# exit 0;
+# }
+#}
+
+
+unlink $iorfile1;
+unlink $iorfile2;
+unlink $iorfile3;
+unlink $iorfile4;
+unlink $iorfile5;
+
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:10000 -s
+$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:20000 -s
+$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV3 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:30000 -s
+$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV4 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:40000 -s
+$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV5 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:50000 -s
+$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+$SV1->Spawn ();
+$SV2->Spawn ();
+$SV3->Spawn ();
+$SV4->Spawn ();
+$SV5->Spawn ();
+
+sleep (99999999999);
diff --git a/modules/CIAO/DAnCE/tests/scripts/BasicSP/basicsp.dat b/modules/CIAO/DAnCE/tests/scripts/BasicSP/basicsp.dat
new file mode 100644
index 00000000000..8bd5e6a72f6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/scripts/BasicSP/basicsp.dat
@@ -0,0 +1,3 @@
+BMClosedED corbaloc:iiop:localhost:10000/NodeManager
+EC corbaloc:iiop:localhost:20000/NodeManager
+
diff --git a/modules/CIAO/DAnCE/tools/Completion/CompletionHandler_T.h b/modules/CIAO/DAnCE/tools/Completion/CompletionHandler_T.h
new file mode 100644
index 00000000000..af01a0a85f5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Completion/CompletionHandler_T.h
@@ -0,0 +1,38 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file CompletionHandler_T.h
+ *
+ * $Id$
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
+#ifndef COMPLETION_HANDLER_T_H
+#define COMPLETION_HANDLER_T_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+#include "tao/Exception.h"
+
+namespace DAnCE
+ {
+
+ template <class PROCESSOR>
+ class CompletionHandler
+ {
+ public:
+ virtual ~CompletionHandler () {}
+
+ virtual void handle_completion (PROCESSOR *processor) = 0;
+ virtual void handle_exception (CORBA::Exception* local_ex) = 0;
+ };
+
+ }; /* DAnCE */
+
+#include /**/ "ace/post.h"
+
+#endif /* COMPLETION_HANDLER_T_H */
diff --git a/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.cpp b/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.cpp
new file mode 100644
index 00000000000..485cb891053
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.cpp
@@ -0,0 +1,15 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "Completion/Completion_Counter_Base.h"
+
+ACE_RCSID(DAnCE, Completion_Counter_Base, "$Id$")
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if !defined (__ACE_INLINE__)
+#include "Completion/Completion_Counter_Base.inl"
+#endif /* __ACE_INLINE__ */
diff --git a/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.h b/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.h
new file mode 100644
index 00000000000..231b066584d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.h
@@ -0,0 +1,74 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Completion_Counter_Base.h
+ *
+ * $Id$
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
+#ifndef COMPLETION_COUNTER_H
+#define COMPLETION_COUNTER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+#include "ace/Null_Mutex.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace DAnCE
+ {
+
+ template <class ACE_LOCK>
+ class Completion_Counter_Base
+ {
+ public:
+ typedef ACE_LOCK lock_type;
+ Completion_Counter_Base (unsigned int exec_count,
+ unsigned int fail_count);
+ virtual ~Completion_Counter_Base ();
+
+ void decrement_exec_count ();
+ void increment_fail_count ();
+
+ unsigned int exec_count ();
+ unsigned int fail_count ();
+
+ bool all_completed ();
+
+ protected:
+ unsigned int exec_count_i ();
+ unsigned int fail_count_i ();
+
+ virtual void on_all_completed () = 0;
+ virtual void on_all_completed_with_failure () = 0;
+
+ private:
+ mutable ACE_LOCK lock_;
+ unsigned int exec_count_;
+ unsigned int fail_count_;
+ };
+
+ }; /* DAnCE */
+
+#if defined (__ACE_INLINE__)
+#include "Completion/Completion_Counter_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Completion/Completion_Counter_Base.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Completion_Counter_Base.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* COMPLETION_HANDLER_T_H */
diff --git a/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.inl b/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.inl
new file mode 100644
index 00000000000..719cb531741
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Completion/Completion_Counter_Base.inl
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+//
+// $Id$
+
+namespace DAnCE
+ {
+
+ template <class ACE_LOCK>
+ ACE_INLINE Completion_Counter_Base<ACE_LOCK>::~Completion_Counter_Base ()
+ {
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE Completion_Counter_Base<ACE_LOCK>::Completion_Counter_Base (
+ unsigned int exec_count,
+ unsigned int fail_count)
+ : exec_count_ (exec_count), fail_count_ (fail_count)
+ {
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE void
+ Completion_Counter_Base<ACE_LOCK>::decrement_exec_count ()
+ {
+ ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
+
+ --this->exec_count_;
+
+ if (this->exec_count_ == 0)
+ {
+ if (this->fail_count_ > 0)
+ {
+ this->on_all_completed_with_failure ();
+ }
+ else
+ {
+ this->on_all_completed ();
+ }
+ }
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE void
+ Completion_Counter_Base<ACE_LOCK>::increment_fail_count ()
+ {
+ ACE_GUARD (ACE_LOCK, ace_mon, this->lock_);
+
+ ++this->fail_count_;
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE unsigned int
+ Completion_Counter_Base<ACE_LOCK>::exec_count ()
+ {
+ ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, 0);
+
+ return this->exec_count_;
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE unsigned int
+ Completion_Counter_Base<ACE_LOCK>::fail_count ()
+ {
+ ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, 0);
+
+ return this->fail_count_;
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE bool
+ Completion_Counter_Base<ACE_LOCK>::all_completed ()
+ {
+ ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, false);
+
+ return (this->exec_count_ == 0);
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE unsigned int
+ Completion_Counter_Base<ACE_LOCK>::exec_count_i ()
+ {
+ return this->exec_count_;
+ }
+
+ template <class ACE_LOCK>
+ ACE_INLINE unsigned int
+ Completion_Counter_Base<ACE_LOCK>::fail_count_i ()
+ {
+ return this->fail_count_;
+ }
+
+ }; /*DAnCE */
diff --git a/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.cpp b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.cpp
new file mode 100644
index 00000000000..2f36ffe88b1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.cpp
@@ -0,0 +1,143 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "ace/Get_Opt.h"
+#include "ace/Auto_Ptr.h"
+#include "tao/ORB.h"
+#include "DAnCE/Deployment/Deployment_DeploymentPlanC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "Convert_Plan_Impl.h"
+
+
+const char *input_filename = 0;
+const char *output_filename = 0;
+void
+usage (void)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("usage: dance_split_plan [options]\n")
+ ACE_TEXT ("Converts a provided plan to CDR. If no output file is nominated, ")
+ ACE_TEXT ("the input XML plan will be validated against schema and the program will exit\n")
+ ACE_TEXT ("\t-x <plan>\t\tXML Encoded input plan\n")
+ ACE_TEXT ("\t-o <file>\t\tOutput destination for converted plan\n")
+ ));
+}
+
+bool
+parse_args (int argc, ACE_TCHAR *argv [])
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("dance_split_plan options: ")));
+
+ for (int i = 0; i < argc; ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, ACE_TEXT("\t%s\n"), argv[i]));
+ }
+
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("x:o:h"), 0);
+
+ int c;
+ ACE_CString s;
+ while ((c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 'x':
+ input_filename = get_opt.opt_arg ();
+ break;
+
+ case 'o':
+ output_filename = get_opt.opt_arg ();
+ break;
+
+ case 'h':
+ usage ();
+ return false;
+ default:
+ usage ();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+#ifdef GEN_OSTREAM_OPS
+#include <iostream>
+#include <sstream>
+#endif /* GEN_OSTREAM_OPS */
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv [])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("Convert_Plan - initializing ORB\n")));
+
+ // Need an ORB for the Config handlers
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (!parse_args (argc, argv))
+ {
+ return -1;
+ }
+
+ if (!input_filename)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Convert_Plan - "
+ "No input filename provided\n"));
+ return -1;
+ }
+
+ auto_ptr <Deployment::DeploymentPlan> plan (DAnCE::Convert_Plan::read_xml_plan (input_filename));
+
+ if (!plan.get ())
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Convert_Plan - "
+ "Unable to load an XML based plan\n"));
+ return -1;
+ }
+
+#ifdef GEN_OSTREAM_OPS
+ {
+ std::ostringstream plan_stream;
+ plan_stream << *plan << std::endl;
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Convert_Plan - Input plan: %C\n",
+ plan_stream.str ().c_str ()));
+ }
+#endif /* GEN_OSTREAM_OPS */
+
+ if (!output_filename)
+ {
+ DANCE_DEBUG (2, (LM_DEBUG, DLINFO "Convert_Plan - "
+ "XML Input file validated correctly with no output file specifed, exiting\n"));
+ return 0;
+ }
+
+ DAnCE::Convert_Plan::write_cdr_plan (output_filename, *plan);
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ex._tao_print_exception ("Convert_Plan");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Convert_Plan - error: unknown c++ exception\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
diff --git a/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.mpc b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.mpc
new file mode 100644
index 00000000000..ea792f7ea62
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan.mpc
@@ -0,0 +1,21 @@
+// $Id$
+project (DAnCE_Convert_Plan) : dance_lib, dance_output, \
+ dance_deployment_stub, dance_config_handlers {
+
+ dynamicflags = DANCE_CONVERT_PLAN_BUILD_DLL
+ includes += $(DANCE_ROOT)/tools
+
+ Source_Files {
+ Convert_Plan_Impl.cpp
+ }
+}
+
+
+project (DAnCE_Convert_Plan_Exec) : dance_exe, dance_output, \
+ dance_convert_plan {
+ exename = dance_convert_plan
+
+ Source_Files {
+ Convert_Plan.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.cpp b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.cpp
new file mode 100644
index 00000000000..9fb61a5dc29
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.cpp
@@ -0,0 +1,198 @@
+// $Id$
+
+#include "Convert_Plan_Impl.h"
+#include "ace/OS_NS_stdio.h"
+#include "tao/CDR.h"
+#include "Config_Handlers/XML_File_Intf.h"
+#include "Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+ Deployment::DeploymentPlan *
+ Convert_Plan::read_xml_plan (const char *filename)
+ {
+ if (!filename)
+ {
+ DANCE_ERROR (2, (LM_WARNING, DLINFO ACE_TEXT ("Convert_Plan::read_xml_plan - ")
+ ACE_TEXT ("Passed a null pointer, returning.\n")));
+ }
+
+ CIAO::Config_Handlers::XML_File_Intf xml_intf (filename);
+ xml_intf.add_search_path ("ACE_ROOT", "/docs/schema/");
+ xml_intf.add_search_path ("TAO_ROOT", "/docs/schema/");
+ xml_intf.add_search_path ("CIAO_ROOT", "/docs/schema/");
+ xml_intf.add_search_path ("DANCE_ROOT", "/docs/schema/");
+
+ return xml_intf.release_plan ();
+ }
+
+ Deployment::DeploymentPlan *
+ Convert_Plan::read_cdr_plan (const char *filename)
+ {
+ if (!filename)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("Convert_Plan::read_cdr_plan - ")
+ ACE_TEXT ("Passed a null pointer, returning.\n")));
+ return 0;
+ }
+
+ FILE *file = ACE_OS::fopen (filename, "r");
+
+ if (!file)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("Convert_Plan::read_cdr_plan - ")
+ ACE_TEXT ("Error: Unable to open file for reasding %C\n"),
+ filename));
+ return 0;
+ }
+
+ char byte_order;
+ size_t n = ACE_OS::fread (&byte_order, sizeof (byte_order), 1, file);
+
+ if (n == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("Convert_Plan::read_cdr_plan - ")
+ ACE_TEXT ("Byte order not written to file\n")));
+ ACE_OS::fclose (file);
+ return 0;
+ }
+
+ ACE_UINT32 bufsize (0);
+ n = ACE_OS::fread (&bufsize, sizeof (bufsize), 1, file);
+
+ if (n == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("Convert_Plan::read_cdr_plan - ")
+ ACE_TEXT ("Plan size not written to file\n")));
+ ACE_OS::fclose (file);
+ return 0;
+ }
+
+ if (byte_order != ACE_CDR_BYTE_ORDER)
+ {
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT ("Convert_Plan::read_cdr_plan - ")
+ ACE_TEXT ("Plan appears encoded in a different endian.\n")));
+ ACE_CDR::swap_4 (reinterpret_cast<char *> (&bufsize),
+ reinterpret_cast<char *> (&bufsize));
+ }
+
+
+ char *buffer = 0;
+ ACE_NEW_RETURN (buffer,
+ char[bufsize],
+ 0);
+
+#if defined (ACE_INITIALIZE_MEMORY_BEFORE_USE)
+ ACE_OS::memset(buffer, 0, sizeof (buffer));
+#endif /* ACE_INITIALIZE_MEMORY_BEFORE_USE */
+
+ // Make sure <buffer> is released automagically.
+ ACE_Auto_Basic_Array_Ptr<char> b (buffer);
+
+ n = ACE_OS::fread (buffer, 1, bufsize, file);
+ ACE_OS::fclose (file);
+
+ if (n != bufsize)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Convert_Plan_Impl::read_cdr_plan - read %u bytes "
+ "instead of %u bytes\n", n, bufsize));
+ return 0;
+ }
+
+ ACE_Message_Block mb (ACE_CDR::MAX_ALIGNMENT + bufsize);
+ ACE_CDR::mb_align (&mb);
+ mb.copy (buffer, bufsize);
+
+ TAO_InputCDR input_cdr (&mb);
+ input_cdr.reset_byte_order ((int) byte_order);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Convert_Plan_Impl::read_cdr_plan - "
+ "Reading file %C in %s endian format with size %u\n",
+ filename,
+ ACE_CDR_BYTE_ORDER ? ACE_TEXT("little") : ACE_TEXT("big"),
+ bufsize));
+
+
+ Deployment::DeploymentPlan *retval;
+
+ ACE_NEW_RETURN (retval, Deployment::DeploymentPlan (), 0);
+
+ if (!(input_cdr >> *retval))
+ {
+ DANCE_ERROR (1, (LM_ERROR, ACE_TEXT ("Convert_Plan_Impl::read_cdr_plan - ")
+ ACE_TEXT ("Failed to demarshal plan\n")));
+ delete retval;
+ return 0;
+ }
+
+
+ return retval;
+ }
+
+ bool
+ Convert_Plan::write_cdr_plan (const char *output_filename, Deployment::DeploymentPlan &plan)
+ {
+ if (!output_filename)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Convert_Plan_Impl::write_cdr_plan - passed nil file name\n"));
+ return false;
+ }
+
+ TAO_OutputCDR output_cdr;
+
+ if (output_cdr << plan)
+ {
+ FILE *file = ACE_OS::fopen (output_filename, "w");
+
+ if (file == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Convert_Plan_Impl::write_cdr_plan - failed to open file %C\n",
+ output_filename));
+ return false;
+ }
+
+ // First write the byte order
+ char byte_order = ACE_CDR_BYTE_ORDER;
+ size_t n = ACE_OS::fwrite (&byte_order, sizeof(byte_order), 1, file);
+
+ // Next write the length
+ ACE_UINT32 cdr_length (output_cdr.total_length ());
+ n += ACE_OS::fwrite (&cdr_length, sizeof (cdr_length), 1, file);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO "Convert_Plan_Impl::write_cdr_plan - "
+ ACE_TEXT ("Writing plan to file %s in %s endian format and length %u\n"),
+ output_filename,
+ ACE_CDR_BYTE_ORDER ? ACE_TEXT("little") : ACE_TEXT("big"),
+ cdr_length));
+
+ // Now write the IDL structure.
+ for (const ACE_Message_Block *output_mb = output_cdr.begin ();
+ output_mb != 0;
+ output_mb = output_mb->cont ())
+ {
+ n += ACE_OS::fwrite (output_mb->rd_ptr (),
+ 1,
+ output_mb->length (),
+ file);
+ }
+
+ ACE_OS::fclose (file);
+
+ size_t total_size = sizeof (byte_order) + sizeof (cdr_length) + cdr_length;
+ if (n != total_size)
+ {
+ DANCE_ERROR (1, (LM_ERROR, ACE_TEXT ("Convert_Plan::write_cdr_plan - ")
+ ACE_TEXT ("Error: Unexpected number of bytes written: %u instead of %u\n"),
+ n, total_size));
+ }
+ }
+ else
+ {
+ DANCE_ERROR (1, (LM_ERROR, ACE_TEXT ("Convert_Plan::write_cdr_plan - ")
+ ACE_TEXT ("Failed to mashal deployment plan\n")));
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.h b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.h
new file mode 100644
index 00000000000..a54b542e886
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Convert_Plan/Convert_Plan_Impl.h
@@ -0,0 +1,26 @@
+// $Id$
+
+/**
+ * @file Convert_Plan_Impl.h
+ *
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef DANCE_CONVERT_PLAN_H
+#define DANCE_CONVERT_PLAN_H
+
+#include "Convert_Plan/DAnCE_Convert_Plan_export.h"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+
+namespace DAnCE
+{
+ class DAnCE_Convert_Plan_Export Convert_Plan
+ {
+ public:
+ static Deployment::DeploymentPlan * read_xml_plan (const char *filename);
+ static Deployment::DeploymentPlan * read_cdr_plan (const char *filename);
+ static bool write_cdr_plan (const char *filename, Deployment::DeploymentPlan &plan);
+ };
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/tools/Convert_Plan/DAnCE_Convert_Plan_export.h b/modules/CIAO/DAnCE/tools/Convert_Plan/DAnCE_Convert_Plan_export.h
new file mode 100644
index 00000000000..f41657d581e
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Convert_Plan/DAnCE_Convert_Plan_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_Convert_Plan
+// ------------------------------
+#ifndef DANCE_CONVERT_PLAN_EXPORT_H
+#define DANCE_CONVERT_PLAN_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_CONVERT_PLAN_HAS_DLL)
+# define DANCE_CONVERT_PLAN_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_CONVERT_PLAN_HAS_DLL */
+
+#if !defined (DANCE_CONVERT_PLAN_HAS_DLL)
+# define DANCE_CONVERT_PLAN_HAS_DLL 1
+#endif /* ! DANCE_CONVERT_PLAN_HAS_DLL */
+
+#if defined (DANCE_CONVERT_PLAN_HAS_DLL) && (DANCE_CONVERT_PLAN_HAS_DLL == 1)
+# if defined (DANCE_CONVERT_PLAN_BUILD_DLL)
+# define DAnCE_Convert_Plan_Export ACE_Proper_Export_Flag
+# define DANCE_CONVERT_PLAN_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_CONVERT_PLAN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_CONVERT_PLAN_BUILD_DLL */
+# define DAnCE_Convert_Plan_Export ACE_Proper_Import_Flag
+# define DANCE_CONVERT_PLAN_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_CONVERT_PLAN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_CONVERT_PLAN_BUILD_DLL */
+#else /* DANCE_CONVERT_PLAN_HAS_DLL == 1 */
+# define DAnCE_Convert_Plan_Export
+# define DANCE_CONVERT_PLAN_SINGLETON_DECLARATION(T)
+# define DANCE_CONVERT_PLAN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_CONVERT_PLAN_HAS_DLL == 1 */
+
+// Set DANCE_CONVERT_PLAN_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_CONVERT_PLAN_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_CONVERT_PLAN_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_CONVERT_PLAN_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_CONVERT_PLAN_NTRACE */
+
+#if (DANCE_CONVERT_PLAN_NTRACE == 1)
+# define DANCE_CONVERT_PLAN_TRACE(X)
+#else /* (DANCE_CONVERT_PLAN_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_CONVERT_PLAN_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_CONVERT_PLAN_NTRACE == 1) */
+
+#endif /* DANCE_CONVERT_PLAN_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/tools/Split_Plan/DAnCE_Split_Plan_export.h b/modules/CIAO/DAnCE/tools/Split_Plan/DAnCE_Split_Plan_export.h
new file mode 100644
index 00000000000..fd07498538a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Split_Plan/DAnCE_Split_Plan_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_Split_Plan
+// ------------------------------
+#ifndef DANCE_SPLIT_PLAN_EXPORT_H
+#define DANCE_SPLIT_PLAN_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_SPLIT_PLAN_HAS_DLL)
+# define DANCE_SPLIT_PLAN_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_SPLIT_PLAN_HAS_DLL */
+
+#if !defined (DANCE_SPLIT_PLAN_HAS_DLL)
+# define DANCE_SPLIT_PLAN_HAS_DLL 1
+#endif /* ! DANCE_SPLIT_PLAN_HAS_DLL */
+
+#if defined (DANCE_SPLIT_PLAN_HAS_DLL) && (DANCE_SPLIT_PLAN_HAS_DLL == 1)
+# if defined (DANCE_SPLIT_PLAN_BUILD_DLL)
+# define DAnCE_Split_Plan_Export ACE_Proper_Export_Flag
+# define DANCE_SPLIT_PLAN_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_SPLIT_PLAN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_SPLIT_PLAN_BUILD_DLL */
+# define DAnCE_Split_Plan_Export ACE_Proper_Import_Flag
+# define DANCE_SPLIT_PLAN_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_SPLIT_PLAN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_SPLIT_PLAN_BUILD_DLL */
+#else /* DANCE_SPLIT_PLAN_HAS_DLL == 1 */
+# define DAnCE_Split_Plan_Export
+# define DANCE_SPLIT_PLAN_SINGLETON_DECLARATION(T)
+# define DANCE_SPLIT_PLAN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_SPLIT_PLAN_HAS_DLL == 1 */
+
+// Set DANCE_SPLIT_PLAN_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_SPLIT_PLAN_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_SPLIT_PLAN_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_SPLIT_PLAN_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_SPLIT_PLAN_NTRACE */
+
+#if (DANCE_SPLIT_PLAN_NTRACE == 1)
+# define DANCE_SPLIT_PLAN_TRACE(X)
+#else /* (DANCE_SPLIT_PLAN_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_SPLIT_PLAN_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_SPLIT_PLAN_NTRACE == 1) */
+
+#endif /* DANCE_SPLIT_PLAN_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.cpp b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.cpp
new file mode 100644
index 00000000000..5dcb053abdb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.cpp
@@ -0,0 +1,144 @@
+// $Id$
+
+#include "ace/Dynamic_Service.h"
+#include "ace/Get_Opt.h"
+#include "ace/Auto_Ptr.h"
+#include "tao/ORB.h"
+#include "DAnCE/Deployment/Deployment_DeploymentPlanC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "DAnCE/Config_Handlers/XML_File_Intf.h"
+#include "DAnCE/tools/Convert_Plan/Convert_Plan_Impl.h"
+#include "Split_Plan_impl.h"
+
+
+bool cdr_encoded_ = false;
+const char *input_filename = 0;
+
+void
+usage (void)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("usage: dance_split_plan [options]\n")
+ ACE_TEXT ("Applies the split plan algorithm and saves the result to")
+ ACE_TEXT ("CDR encoded plans\n")
+ ACE_TEXT ("\t-c <plan>\t\tCDR Encoded input plan\n")
+ ACE_TEXT ("\t-x <plan>\t\tXML Encoded input plan\n")
+ ));
+}
+
+bool
+parse_args (int argc, ACE_TCHAR *argv [])
+{
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("dance_split_plan options: ")));
+
+ for (int i = 0; i < argc; ++i)
+ {
+ DANCE_DEBUG (9, (LM_TRACE, ACE_TEXT("\t%s\n"), argv[i]));
+ }
+
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("c:x:h"), 0);
+
+ int c;
+ ACE_CString s;
+ while ((c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 'c':
+ cdr_encoded_ = true;
+ input_filename = get_opt.opt_arg ();
+ break;
+
+ case 'x':
+ cdr_encoded_ = false;
+ input_filename = get_opt.opt_arg ();
+ break;
+
+ case 'h':
+ usage ();
+ return false;
+ default:
+ usage ();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv [])
+{
+ DANCE_DISABLE_TRACE ();
+
+ int retval = 0;
+
+ try
+ {
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger");
+
+ if (dlf)
+ {
+ dlf->init (argc, argv);
+ }
+
+ DANCE_DEBUG (6, (LM_TRACE, DLINFO
+ ACE_TEXT("PlanLauncher - initializing ORB\n")));
+
+ // Need an ORB for the Config handlers
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (!parse_args (argc, argv))
+ {
+ return -1;
+ }
+
+ auto_ptr<Deployment::DeploymentPlan> plan;
+
+ if (!cdr_encoded_)
+ {
+ plan.reset (DAnCE::Convert_Plan::read_xml_plan (input_filename));
+ }
+ else
+ {
+ plan.reset (DAnCE::Convert_Plan::read_cdr_plan (input_filename));
+ }
+
+ if (plan.get () == 0)
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO "Split_Plan - "
+ "Unable to convert provided plan into IDL representation\n"));
+ return 0;
+ }
+
+ DAnCE::Split_Plan::TNodePlans plans;
+ DAnCE::Split_Plan split (*plan, plans);
+ split.split_plan ();
+
+ for (DAnCE::Split_Plan::TNodePlans::iterator iter_plans = plans.begin();
+ iter_plans != plans.end();
+ ++iter_plans)
+ {
+ ACE_CString name ((*iter_plans).ext_id_);
+ DANCE_DEBUG (3, (LM_DEBUG, DLINFO "Split_Plan - "
+ "Writing sub plan for node %C\n",
+ name.c_str ()));
+
+ name += input_filename;
+ DAnCE::Convert_Plan::write_cdr_plan (name.c_str (), (*iter_plans).int_id_);
+ }
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ex._tao_print_exception ("PlanLauncher");
+ retval = -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR (1, (LM_ERROR, "Split_Plan - error: unknown c++ exception\n"));
+ retval = -1;
+ }
+
+ return retval;
+}
diff --git a/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.mpc b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.mpc
new file mode 100644
index 00000000000..65a5ca2cb3d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan.mpc
@@ -0,0 +1,18 @@
+// $Id$
+
+project (DAnCE_Split_Plan_Impl) : dance_lib, dance_deployment_stub, dance_output, dance_logger {
+ dynamicflags = DANCE_SPLIT_PLAN_BUILD_DLL
+ includes += $(DANCE_ROOT)/tools
+ Source_Files {
+ Split_Plan_impl.cpp
+ }
+}
+
+project (DAnCE_Split_Plan_Exec) : dance_exe, dance_output, dance_split_plan, \
+ avoids_ace_for_tao, dance_convert_plan, dance_logger {
+ exename = dance_split_plan
+
+ Source_Files {
+ Split_Plan.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.cpp b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.cpp
new file mode 100644
index 00000000000..4fe7e7a4a79
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.cpp
@@ -0,0 +1,247 @@
+// $Id$
+
+#include "Split_Plan_impl.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+ Split_Plan::Split_Plan (const Deployment::DeploymentPlan &plan,
+ TNodePlans &sub_plans)
+ : plan_ (plan),
+ sub_plans_ (sub_plans)
+ {
+ }
+ void
+ Split_Plan::split_plan ()
+ {
+ DANCE_TRACE ( "Split_Plan::split_plan");
+
+ const Deployment::DeploymentPlan &plan = this->plan_;
+ TNodePlans &sub_plans = this->sub_plans_;
+
+ DANCE_DEBUG (9, (LM_TRACE, ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("Creating sub-plans\n")));
+ // Create empty sub-plans
+ for (CORBA::ULong i = 0; i < plan.instance.length(); ++i)
+ {
+ ACE_CString node = plan.instance[i].node.in();
+ if (0 == sub_plans.find (node)) continue;
+
+ ::Deployment::DeploymentPlan tmp_plan;
+
+ // Construct the UUID for the child plan.
+ // Currently, this UUID consists of:
+ // The global UUID for the parent plan + the name of the node the
+ // child plan is to be installed on.
+ ACE_CString child_uuid (plan.UUID.in ());
+ // child_uuid += "@"; CCM#61
+ // child_uuid += node;
+
+ tmp_plan.UUID = CORBA::string_dup (child_uuid.c_str());
+ tmp_plan.implementation.length (0);
+ tmp_plan.instance.length (0);
+ tmp_plan.connection.length (0);
+ tmp_plan.externalProperty.length (0);
+ tmp_plan.dependsOn.length (0);
+ tmp_plan.artifact.length (0);
+
+ // @@ There is an optimization point here, since we really don't have to
+ // pass the entire CIAOServerResources into each individual child plan.
+ tmp_plan.infoProperty = plan.infoProperty;
+
+ CORBA::ULong num_localities (plan.localityConstraint.length ());
+ Deployment::PlanLocalities default_loc (num_localities);
+ default_loc.length (num_localities);
+
+ for (CORBA::ULong i = 0; i < num_localities; ++i)
+ {
+ default_loc[i].constraint = Deployment::PlanNoConstraint;
+ }
+
+ tmp_plan.localityConstraint = default_loc;
+
+ sub_plans.bind (node, tmp_plan);
+
+ DANCE_DEBUG (9, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("Created sub-plan for node %C with UUID %C\n"),
+ node.c_str (), child_uuid.c_str ()));
+ }
+
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("First phase produced %u child plans, proceeding to second\n"),
+ sub_plans.current_size ()));
+
+ // (1) Iterate over the <instance> field of the global DeploymentPlan
+ // structure.
+ // (2) Retrieve the necessary information to contruct the node-level
+ // plans one by one.
+ for (CORBA::ULong i = 0; i < plan.instance.length (); ++i)
+ {
+ DANCE_DEBUG (10, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("Processing instance: %C\n"), plan.instance[i].name.in()));
+ // @@TODO Fill in the child deployment plan in the map.
+ // If the component instance already exists in the child plan,
+ // then we overwrite the existing instance, since the new instance
+ // might have different resource usage requirements.
+
+ // Get the instance deployment description
+ const ::Deployment::InstanceDeploymentDescription & my_instance = plan.instance[i];
+
+ // Get the child plan.
+ ::Deployment::DeploymentPlan child_plan;
+
+ if (0 != sub_plans.find (my_instance.node.in(), child_plan))
+ {
+ DANCE_ERROR (1, (LM_ERROR, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("ERROR: Unable to find sub-plan for instance %C\n"),
+ my_instance.node.in ()));
+ }
+
+ // Fill in the contents of the child plan entry.
+
+ // Append the "MonolithicDeploymentDescriptions implementation"
+ // field with a new "implementation", which is specified by the
+ // <implementationRef> field of <my_instance> entry. NOTE: The
+ // <artifactRef> field needs to be changed accordingly.
+ ::Deployment::MonolithicDeploymentDescription const & my_implementation
+ = plan.implementation[my_instance.implementationRef];
+
+ CORBA::ULong index_imp = child_plan.implementation.length ();
+ child_plan.implementation.length (++index_imp);
+ child_plan.implementation[index_imp-1] = my_implementation;
+
+ // Initialize with the correct sequence length.
+ CORBA::ULongSeq ulong_seq;
+ ulong_seq.length (my_implementation.artifactRef.length ());
+
+ // Append the "ArtifactDeploymentDescriptions artifact" field
+ // with some new "artifacts", which is specified by the
+ // <artifactRef> sequence of <my_implementation> entry.
+ CORBA::ULong const impl_length = my_implementation.artifactRef.length ();
+ for (CORBA::ULong iter = 0;
+ iter < impl_length;
+ iter ++)
+ {
+ CORBA::ULong artifact_ref = my_implementation.artifactRef[iter];
+
+ // Fill in the <artifact> field of the child plan
+ CORBA::ULong index_art = child_plan.artifact.length ();
+ child_plan.artifact.length (++index_art);
+ child_plan.artifact[index_art-1] = plan.artifact[artifact_ref];
+
+ // Fill in the artifactRef field of the MonolithicDeploymentDescription
+ ulong_seq[iter] = index_art - 1;
+ }
+
+ // Change the <artifactRef> field of the "implementation".
+ child_plan.implementation[index_imp-1].artifactRef = ulong_seq;
+
+ // Append the "InstanceDeploymentDescription instance" field with
+ // a new "instance", which is almost the same as the "instance" in
+ // the global plan except the <implementationRef> field.
+ // NOTE: The <implementationRef> field needs to be changed accordingly.
+ CORBA::ULong index_ins = child_plan.instance.length ();
+ child_plan.instance.length (++index_ins);
+ child_plan.instance[index_ins-1] = my_instance;
+
+ // Change the <implementationRef> field of the "instance".
+ // @@ The implementationRef starts from 0.
+ // @@TODO: Below logic needs to be changed once we want to avoid
+ // duplicate <implementation> for the optimization.
+ child_plan.instance[index_ins-1].implementationRef = index_imp - 1;
+
+ DANCE_DEBUG (10, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("Processing connections.\n")));
+ // Copy connections
+ for (CORBA::ULong j = 0; j < plan.connection.length(); ++j)
+ {
+ DANCE_DEBUG (10, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("For connection: %C\n"), plan.connection[j].name.in()));
+ for (CORBA::ULong k = 0; k < plan.connection[j].internalEndpoint.length(); ++k)
+ {
+ DANCE_DEBUG (10, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("For endpoint: %C(%C)\n"),
+ plan.connection[j].internalEndpoint[k].portName.in(),
+ plan.connection[j].internalEndpoint[k].provider ? "provider" : "client"));
+ if (i == plan.connection[j].internalEndpoint[k].instanceRef) // the instance (i) is referenced by the connection
+ {
+ Deployment::PlanConnectionDescription * connection_copied = 0;
+ for (CORBA::ULong m = 0; m < child_plan.connection.length(); ++m)
+ {
+ if (ACE_OS::strcmp (plan.connection[j].name.in (), child_plan.connection[m].name.in ()) == 0)
+ {
+ connection_copied = &child_plan.connection[m];
+ break;
+ }
+ }
+
+ if (!connection_copied)
+ {
+ // Copy the connection
+ CORBA::ULong const index_con = child_plan.connection.length();
+ child_plan.connection.length (index_con + 1);
+ child_plan.connection[index_con] = plan.connection[j];
+ connection_copied = &child_plan.connection[index_con];
+ connection_copied->internalEndpoint.length (0);
+ }
+
+ // Copy the endpoint
+ CORBA::ULong const index_ep = connection_copied->internalEndpoint.length();
+
+ DANCE_DEBUG (10, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT ("Copying endpoint %u from connection into endpoint %u\n"),
+ k, index_ep));
+
+ connection_copied->internalEndpoint.length (index_ep + 1);
+ connection_copied->internalEndpoint[index_ep] = plan.connection[j].internalEndpoint[k];
+ connection_copied->internalEndpoint[index_ep].instanceRef = index_ins - 1;
+ }
+ }
+ }
+
+ for (CORBA::ULong j = 0; j < plan.localityConstraint.length (); ++j)
+ {
+ ::Deployment::PlanLocality loc = plan.localityConstraint[j];
+ for (CORBA::ULong k = 0; k < loc.constrainedInstanceRef.length (); ++k)
+ {
+ if (loc.constrainedInstanceRef[k] == i) // we are the same instance...
+ {
+ // add our new instance ref to the child plan's corresponding contraint.
+ CORBA::ULong child_loc_len (child_plan.localityConstraint[j].constrainedInstanceRef.length ());
+
+ DANCE_DEBUG (10, (LM_TRACE, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT ("Found matching locality constraint %u:%u, adding to %u:%u as %u\n"),
+ j, k, j, child_loc_len, index_ins - 1));
+ child_plan.localityConstraint[j].constraint = loc.constraint;
+ child_plan.localityConstraint[j].constrainedInstanceRef.length (child_loc_len + 1);
+ child_plan.localityConstraint[j].constrainedInstanceRef[child_loc_len] = index_ins - 1;
+ }
+ }
+ }
+
+
+ sub_plans.rebind (my_instance.node.in(), child_plan);
+ }
+
+ //Debug
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO
+ ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("Original plan connection count: %u\n"), plan.connection.length()));
+ CORBA::ULong cnt = 0;
+ for (TNodePlans::iterator it = sub_plans.begin(); it != sub_plans.end(); ++it)
+ {
+ cnt += (*it).int_id_.connection.length();
+ }
+ DANCE_DEBUG (6, (LM_DEBUG, DLINFO ACE_TEXT("Split_Plan::split_plan - ")
+ ACE_TEXT("Child plans connection count: %u\n"), cnt));
+ }
+}
diff --git a/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.h b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.h
new file mode 100644
index 00000000000..a9867eb086d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tools/Split_Plan/Split_Plan_impl.h
@@ -0,0 +1,34 @@
+// $Id$
+
+/**
+ * @file Split_Plan_impl.h
+ *
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef DANCE_SPLIT_PLAN_H
+#define DANCE_SPLIT_PLAN_H
+
+#include "ace/Map_Manager.h"
+#include "ace/SStringfwd.h"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "Split_Plan/DAnCE_Split_Plan_export.h"
+
+namespace DAnCE
+{
+ class DAnCE_Split_Plan_Export Split_Plan
+ {
+ public:
+ typedef ACE_Map_Manager<ACE_CString, Deployment::DeploymentPlan, ACE_Null_Mutex> TNodePlans;
+
+ Split_Plan (const Deployment::DeploymentPlan &plan,
+ TNodePlans &sub_plans);
+
+ void split_plan ();
+
+ private:
+ const Deployment::DeploymentPlan &plan_;
+ TNodePlans &sub_plans_;
+ };
+}
+#endif